##// END OF EJS Templates
packages: updated celery to 4.3.0 and switch default backend to redis...
marcink -
r3913:dfb2da80 default
parent child Browse files
Show More
@@ -1,741 +1,744 b''
1 1
2 2
3 3 ################################################################################
4 4 ## RHODECODE COMMUNITY EDITION CONFIGURATION ##
5 5 ################################################################################
6 6
7 7 [DEFAULT]
8 8 ## Debug flag sets all loggers to debug, and enables request tracking
9 9 debug = true
10 10
11 11 ################################################################################
12 12 ## EMAIL CONFIGURATION ##
13 13 ## Uncomment and replace with the email address which should receive ##
14 14 ## any error reports after an application crash ##
15 15 ## Additionally these settings will be used by the RhodeCode mailing system ##
16 16 ################################################################################
17 17
18 18 ## prefix all emails subjects with given prefix, helps filtering out emails
19 19 #email_prefix = [RhodeCode]
20 20
21 21 ## email FROM address all mails will be sent
22 22 #app_email_from = rhodecode-noreply@localhost
23 23
24 24 #smtp_server = mail.server.com
25 25 #smtp_username =
26 26 #smtp_password =
27 27 #smtp_port =
28 28 #smtp_use_tls = false
29 29 #smtp_use_ssl = true
30 30
31 31 [server:main]
32 32 ## COMMON ##
33 33 host = 127.0.0.1
34 34 port = 5000
35 35
36 36 ###########################################################
37 37 ## WAITRESS WSGI SERVER - Recommended for Development ####
38 38 ###########################################################
39 39
40 40 use = egg:waitress#main
41 41 ## number of worker threads
42 42 threads = 5
43 43 ## MAX BODY SIZE 100GB
44 44 max_request_body_size = 107374182400
45 45 ## Use poll instead of select, fixes file descriptors limits problems.
46 46 ## May not work on old windows systems.
47 47 asyncore_use_poll = true
48 48
49 49
50 50 ##########################
51 51 ## GUNICORN WSGI SERVER ##
52 52 ##########################
53 53 ## run with gunicorn --log-config rhodecode.ini --paste rhodecode.ini
54 54
55 55 #use = egg:gunicorn#main
56 56 ## Sets the number of process workers. More workers means more concurrent connections
57 57 ## RhodeCode can handle at the same time. Each additional worker also it increases
58 58 ## memory usage as each has it's own set of caches.
59 59 ## Recommended value is (2 * NUMBER_OF_CPUS + 1), eg 2CPU = 5 workers, but no more
60 60 ## than 8-10 unless for really big deployments .e.g 700-1000 users.
61 61 ## `instance_id = *` must be set in the [app:main] section below (which is the default)
62 62 ## when using more than 1 worker.
63 63 #workers = 2
64 64 ## process name visible in process list
65 65 #proc_name = rhodecode
66 66 ## type of worker class, one of sync, gevent
67 67 ## recommended for bigger setup is using of of other than sync one
68 68 #worker_class = gevent
69 69 ## The maximum number of simultaneous clients. Valid only for Gevent
70 70 #worker_connections = 10
71 71 ## max number of requests that worker will handle before being gracefully
72 72 ## restarted, could prevent memory leaks
73 73 #max_requests = 1000
74 74 #max_requests_jitter = 30
75 75 ## amount of time a worker can spend with handling a request before it
76 76 ## gets killed and restarted. Set to 6hrs
77 77 #timeout = 21600
78 78
79 79
80 80 ## prefix middleware for RhodeCode.
81 81 ## recommended when using proxy setup.
82 82 ## allows to set RhodeCode under a prefix in server.
83 83 ## eg https://server.com/custom_prefix. Enable `filter-with =` option below as well.
84 84 ## And set your prefix like: `prefix = /custom_prefix`
85 85 ## be sure to also set beaker.session.cookie_path = /custom_prefix if you need
86 86 ## to make your cookies only work on prefix url
87 87 [filter:proxy-prefix]
88 88 use = egg:PasteDeploy#prefix
89 89 prefix = /
90 90
91 91 [app:main]
92 92 ## The %(here)s variable will be replaced with the absolute path of parent directory
93 93 ## of this file
94 94 ## In addition ENVIRONMENT variables usage is possible, e.g
95 95 ## sqlalchemy.db1.url = {ENV_RC_DB_URL}
96 96
97 97 use = egg:rhodecode-enterprise-ce
98 98
99 99 ## enable proxy prefix middleware, defined above
100 100 #filter-with = proxy-prefix
101 101
102 102 # During development the we want to have the debug toolbar enabled
103 103 pyramid.includes =
104 104 pyramid_debugtoolbar
105 105 rhodecode.lib.middleware.request_wrapper
106 106
107 107 pyramid.reload_templates = true
108 108
109 109 debugtoolbar.hosts = 0.0.0.0/0
110 110 debugtoolbar.exclude_prefixes =
111 111 /css
112 112 /fonts
113 113 /images
114 114 /js
115 115
116 116 ## RHODECODE PLUGINS ##
117 117 rhodecode.includes =
118 118 rhodecode.api
119 119
120 120
121 121 # api prefix url
122 122 rhodecode.api.url = /_admin/api
123 123
124 124
125 125 ## END RHODECODE PLUGINS ##
126 126
127 127 ## encryption key used to encrypt social plugin tokens,
128 128 ## remote_urls with credentials etc, if not set it defaults to
129 129 ## `beaker.session.secret`
130 130 #rhodecode.encrypted_values.secret =
131 131
132 132 ## decryption strict mode (enabled by default). It controls if decryption raises
133 133 ## `SignatureVerificationError` in case of wrong key, or damaged encryption data.
134 134 #rhodecode.encrypted_values.strict = false
135 135
136 136 ## Pick algorithm for encryption. Either fernet (more secure) or aes (default)
137 137 ## fernet is safer, and we strongly recommend switching to it.
138 138 ## Due to backward compatibility aes is used as default.
139 139 #rhodecode.encrypted_values.algorithm = fernet
140 140
141 141 ## return gzipped responses from RhodeCode (static files/application)
142 142 gzip_responses = false
143 143
144 144 ## auto-generate javascript routes file on startup
145 145 generate_js_files = false
146 146
147 147 ## System global default language.
148 148 ## All available languages: en(default), be, de, es, fr, it, ja, pl, pt, ru, zh
149 149 lang = en
150 150
151 151 ## Perform a full repository scan and import on each server start.
152 152 ## Settings this to true could lead to very long startup time.
153 153 startup.import_repos = false
154 154
155 155 ## Uncomment and set this path to use archive download cache.
156 156 ## Once enabled, generated archives will be cached at this location
157 157 ## and served from the cache during subsequent requests for the same archive of
158 158 ## the repository.
159 159 #archive_cache_dir = /tmp/tarballcache
160 160
161 161 ## URL at which the application is running. This is used for Bootstrapping
162 162 ## requests in context when no web request is available. Used in ishell, or
163 163 ## SSH calls. Set this for events to receive proper url for SSH calls.
164 164 app.base_url = http://rhodecode.local
165 165
166 166 ## Unique application ID. Should be a random unique string for security.
167 167 app_instance_uuid = rc-production
168 168
169 169 ## Cut off limit for large diffs (size in bytes). If overall diff size on
170 170 ## commit, or pull request exceeds this limit this diff will be displayed
171 171 ## partially. E.g 512000 == 512Kb
172 172 cut_off_limit_diff = 512000
173 173
174 174 ## Cut off limit for large files inside diffs (size in bytes). Each individual
175 175 ## file inside diff which exceeds this limit will be displayed partially.
176 176 ## E.g 128000 == 128Kb
177 177 cut_off_limit_file = 128000
178 178
179 179 ## use cached version of vcs repositories everywhere. Recommended to be `true`
180 180 vcs_full_cache = true
181 181
182 182 ## Force https in RhodeCode, fixes https redirects, assumes it's always https.
183 183 ## Normally this is controlled by proper http flags sent from http server
184 184 force_https = false
185 185
186 186 ## use Strict-Transport-Security headers
187 187 use_htsts = false
188 188
189 189 ## git rev filter option, --all is the default filter, if you need to
190 190 ## hide all refs in changelog switch this to --branches --tags
191 191 git_rev_filter = --branches --tags
192 192
193 193 # Set to true if your repos are exposed using the dumb protocol
194 194 git_update_server_info = false
195 195
196 196 ## RSS/ATOM feed options
197 197 rss_cut_off_limit = 256000
198 198 rss_items_per_page = 10
199 199 rss_include_diff = false
200 200
201 201 ## gist URL alias, used to create nicer urls for gist. This should be an
202 202 ## url that does rewrites to _admin/gists/{gistid}.
203 203 ## example: http://gist.rhodecode.org/{gistid}. Empty means use the internal
204 204 ## RhodeCode url, ie. http[s]://rhodecode.server/_admin/gists/{gistid}
205 205 gist_alias_url =
206 206
207 207 ## List of views (using glob pattern syntax) that AUTH TOKENS could be
208 208 ## used for access.
209 209 ## Adding ?auth_token=TOKEN_HASH to the url authenticates this request as if it
210 210 ## came from the the logged in user who own this authentication token.
211 211 ## Additionally @TOKEN syntax can be used to bound the view to specific
212 212 ## authentication token. Such view would be only accessible when used together
213 213 ## with this authentication token
214 214 ##
215 215 ## list of all views can be found under `/_admin/permissions/auth_token_access`
216 216 ## The list should be "," separated and on a single line.
217 217 ##
218 218 ## Most common views to enable:
219 219 # RepoCommitsView:repo_commit_download
220 220 # RepoCommitsView:repo_commit_patch
221 221 # RepoCommitsView:repo_commit_raw
222 222 # RepoCommitsView:repo_commit_raw@TOKEN
223 223 # RepoFilesView:repo_files_diff
224 224 # RepoFilesView:repo_archivefile
225 225 # RepoFilesView:repo_file_raw
226 226 # GistView:*
227 227 api_access_controllers_whitelist =
228 228
229 229 ## Default encoding used to convert from and to unicode
230 230 ## can be also a comma separated list of encoding in case of mixed encodings
231 231 default_encoding = UTF-8
232 232
233 233 ## instance-id prefix
234 234 ## a prefix key for this instance used for cache invalidation when running
235 235 ## multiple instances of RhodeCode, make sure it's globally unique for
236 236 ## all running RhodeCode instances. Leave empty if you don't use it
237 237 instance_id =
238 238
239 239 ## Fallback authentication plugin. Set this to a plugin ID to force the usage
240 240 ## of an authentication plugin also if it is disabled by it's settings.
241 241 ## This could be useful if you are unable to log in to the system due to broken
242 242 ## authentication settings. Then you can enable e.g. the internal RhodeCode auth
243 243 ## module to log in again and fix the settings.
244 244 ##
245 245 ## Available builtin plugin IDs (hash is part of the ID):
246 246 ## egg:rhodecode-enterprise-ce#rhodecode
247 247 ## egg:rhodecode-enterprise-ce#pam
248 248 ## egg:rhodecode-enterprise-ce#ldap
249 249 ## egg:rhodecode-enterprise-ce#jasig_cas
250 250 ## egg:rhodecode-enterprise-ce#headers
251 251 ## egg:rhodecode-enterprise-ce#crowd
252 252 #rhodecode.auth_plugin_fallback = egg:rhodecode-enterprise-ce#rhodecode
253 253
254 254 ## alternative return HTTP header for failed authentication. Default HTTP
255 255 ## response is 401 HTTPUnauthorized. Currently HG clients have troubles with
256 256 ## handling that causing a series of failed authentication calls.
257 257 ## Set this variable to 403 to return HTTPForbidden, or any other HTTP code
258 258 ## This will be served instead of default 401 on bad authentication
259 259 auth_ret_code =
260 260
261 261 ## use special detection method when serving auth_ret_code, instead of serving
262 262 ## ret_code directly, use 401 initially (Which triggers credentials prompt)
263 263 ## and then serve auth_ret_code to clients
264 264 auth_ret_code_detection = false
265 265
266 266 ## locking return code. When repository is locked return this HTTP code. 2XX
267 267 ## codes don't break the transactions while 4XX codes do
268 268 lock_ret_code = 423
269 269
270 270 ## allows to change the repository location in settings page
271 271 allow_repo_location_change = true
272 272
273 273 ## allows to setup custom hooks in settings page
274 274 allow_custom_hooks_settings = true
275 275
276 276 ## Generated license token required for EE edition license.
277 277 ## New generated token value can be found in Admin > settings > license page.
278 278 license_token =
279 279
280 280 ## supervisor connection uri, for managing supervisor and logs.
281 281 supervisor.uri =
282 282 ## supervisord group name/id we only want this RC instance to handle
283 283 supervisor.group_id = dev
284 284
285 285 ## Display extended labs settings
286 286 labs_settings_active = true
287 287
288 288 ## Custom exception store path, defaults to TMPDIR
289 289 ## This is used to store exception from RhodeCode in shared directory
290 290 #exception_tracker.store_path =
291 291
292 292 ## File store configuration. This is used to store and serve uploaded files
293 293 file_store.enabled = true
294 294 ## Storage backend, available options are: local
295 295 file_store.backend = local
296 296 ## path to store the uploaded binaries
297 297 file_store.storage_path = %(here)s/data/file_store
298 298
299 299
300 300 ####################################
301 301 ### CELERY CONFIG ####
302 302 ####################################
303 303 ## run: /path/to/celery worker \
304 304 ## -E --beat --app rhodecode.lib.celerylib.loader \
305 305 ## --scheduler rhodecode.lib.celerylib.scheduler.RcScheduler \
306 306 ## --loglevel DEBUG --ini /path/to/rhodecode.ini
307 307
308 308 use_celery = false
309 309
310 ## connection url to the message broker (default rabbitmq)
311 celery.broker_url = amqp://rabbitmq:qweqwe@localhost:5672/rabbitmqhost
310 ## connection url to the message broker (default redis)
311 celery.broker_url = redis://localhost:6379/8
312
313 ## rabbitmq example
314 #celery.broker_url = amqp://rabbitmq:qweqwe@localhost:5672/rabbitmqhost
312 315
313 316 ## maximum tasks to execute before worker restart
314 317 celery.max_tasks_per_child = 100
315 318
316 319 ## tasks will never be sent to the queue, but executed locally instead.
317 320 celery.task_always_eager = false
318 321
319 322 #####################################
320 323 ### DOGPILE CACHE ####
321 324 #####################################
322 325 ## Default cache dir for caches. Putting this into a ramdisk
323 326 ## can boost performance, eg. /tmpfs/data_ramdisk, however this directory might require
324 327 ## large amount of space
325 328 cache_dir = %(here)s/data
326 329
327 330 ## `cache_perms` cache settings for permission tree, auth TTL.
328 331 rc_cache.cache_perms.backend = dogpile.cache.rc.file_namespace
329 332 rc_cache.cache_perms.expiration_time = 300
330 333
331 334 ## alternative `cache_perms` redis backend with distributed lock
332 335 #rc_cache.cache_perms.backend = dogpile.cache.rc.redis
333 336 #rc_cache.cache_perms.expiration_time = 300
334 337 ## redis_expiration_time needs to be greater then expiration_time
335 338 #rc_cache.cache_perms.arguments.redis_expiration_time = 7200
336 339 #rc_cache.cache_perms.arguments.socket_timeout = 30
337 340 #rc_cache.cache_perms.arguments.host = localhost
338 341 #rc_cache.cache_perms.arguments.port = 6379
339 342 #rc_cache.cache_perms.arguments.db = 0
340 343 ## more Redis options: https://dogpilecache.sqlalchemy.org/en/latest/api.html#redis-backends
341 344 #rc_cache.cache_perms.arguments.distributed_lock = true
342 345
343 346 ## `cache_repo` cache settings for FileTree, Readme, RSS FEEDS
344 347 rc_cache.cache_repo.backend = dogpile.cache.rc.file_namespace
345 348 rc_cache.cache_repo.expiration_time = 2592000
346 349
347 350 ## alternative `cache_repo` redis backend with distributed lock
348 351 #rc_cache.cache_repo.backend = dogpile.cache.rc.redis
349 352 #rc_cache.cache_repo.expiration_time = 2592000
350 353 ## redis_expiration_time needs to be greater then expiration_time
351 354 #rc_cache.cache_repo.arguments.redis_expiration_time = 2678400
352 355 #rc_cache.cache_repo.arguments.socket_timeout = 30
353 356 #rc_cache.cache_repo.arguments.host = localhost
354 357 #rc_cache.cache_repo.arguments.port = 6379
355 358 #rc_cache.cache_repo.arguments.db = 1
356 359 ## more Redis options: https://dogpilecache.sqlalchemy.org/en/latest/api.html#redis-backends
357 360 #rc_cache.cache_repo.arguments.distributed_lock = true
358 361
359 362 ## cache settings for SQL queries, this needs to use memory type backend
360 363 rc_cache.sql_cache_short.backend = dogpile.cache.rc.memory_lru
361 364 rc_cache.sql_cache_short.expiration_time = 30
362 365
363 366 ## `cache_repo_longterm` cache for repo object instances, this needs to use memory
364 367 ## type backend as the objects kept are not pickle serializable
365 368 rc_cache.cache_repo_longterm.backend = dogpile.cache.rc.memory_lru
366 369 ## by default we use 96H, this is using invalidation on push anyway
367 370 rc_cache.cache_repo_longterm.expiration_time = 345600
368 371 ## max items in LRU cache, reduce this number to save memory, and expire last used
369 372 ## cached objects
370 373 rc_cache.cache_repo_longterm.max_size = 10000
371 374
372 375
373 376 ####################################
374 377 ### BEAKER SESSION ####
375 378 ####################################
376 379
377 380 ## .session.type is type of storage options for the session, current allowed
378 381 ## types are file, ext:memcached, ext:redis, ext:database, and memory (default).
379 382 beaker.session.type = file
380 383 beaker.session.data_dir = %(here)s/data/sessions
381 384
382 385 ## redis sessions
383 386 #beaker.session.type = ext:redis
384 387 #beaker.session.url = redis://127.0.0.1:6379/2
385 388
386 389 ## db based session, fast, and allows easy management over logged in users
387 390 #beaker.session.type = ext:database
388 391 #beaker.session.table_name = db_session
389 392 #beaker.session.sa.url = postgresql://postgres:secret@localhost/rhodecode
390 393 #beaker.session.sa.url = mysql://root:secret@127.0.0.1/rhodecode
391 394 #beaker.session.sa.pool_recycle = 3600
392 395 #beaker.session.sa.echo = false
393 396
394 397 beaker.session.key = rhodecode
395 398 beaker.session.secret = develop-rc-uytcxaz
396 399 beaker.session.lock_dir = %(here)s/data/sessions/lock
397 400
398 401 ## Secure encrypted cookie. Requires AES and AES python libraries
399 402 ## you must disable beaker.session.secret to use this
400 403 #beaker.session.encrypt_key = key_for_encryption
401 404 #beaker.session.validate_key = validation_key
402 405
403 406 ## sets session as invalid(also logging out user) if it haven not been
404 407 ## accessed for given amount of time in seconds
405 408 beaker.session.timeout = 2592000
406 409 beaker.session.httponly = true
407 410 ## Path to use for the cookie. Set to prefix if you use prefix middleware
408 411 #beaker.session.cookie_path = /custom_prefix
409 412
410 413 ## uncomment for https secure cookie
411 414 beaker.session.secure = false
412 415
413 416 ## auto save the session to not to use .save()
414 417 beaker.session.auto = false
415 418
416 419 ## default cookie expiration time in seconds, set to `true` to set expire
417 420 ## at browser close
418 421 #beaker.session.cookie_expires = 3600
419 422
420 423 ###################################
421 424 ## SEARCH INDEXING CONFIGURATION ##
422 425 ###################################
423 426 ## Full text search indexer is available in rhodecode-tools under
424 427 ## `rhodecode-tools index` command
425 428
426 429 ## WHOOSH Backend, doesn't require additional services to run
427 430 ## it works good with few dozen repos
428 431 search.module = rhodecode.lib.index.whoosh
429 432 search.location = %(here)s/data/index
430 433
431 434 ########################################
432 435 ### CHANNELSTREAM CONFIG ####
433 436 ########################################
434 437 ## channelstream enables persistent connections and live notification
435 438 ## in the system. It's also used by the chat system
436 439
437 440 channelstream.enabled = false
438 441
439 442 ## server address for channelstream server on the backend
440 443 channelstream.server = 127.0.0.1:9800
441 444
442 445 ## location of the channelstream server from outside world
443 446 ## use ws:// for http or wss:// for https. This address needs to be handled
444 447 ## by external HTTP server such as Nginx or Apache
445 448 ## see Nginx/Apache configuration examples in our docs
446 449 channelstream.ws_url = ws://rhodecode.yourserver.com/_channelstream
447 450 channelstream.secret = secret
448 451 channelstream.history.location = %(here)s/channelstream_history
449 452
450 453 ## Internal application path that Javascript uses to connect into.
451 454 ## If you use proxy-prefix the prefix should be added before /_channelstream
452 455 channelstream.proxy_path = /_channelstream
453 456
454 457
455 458 ###################################
456 459 ## APPENLIGHT CONFIG ##
457 460 ###################################
458 461
459 462 ## Appenlight is tailored to work with RhodeCode, see
460 463 ## http://appenlight.com for details how to obtain an account
461 464
462 465 ## Appenlight integration enabled
463 466 appenlight = false
464 467
465 468 appenlight.server_url = https://api.appenlight.com
466 469 appenlight.api_key = YOUR_API_KEY
467 470 #appenlight.transport_config = https://api.appenlight.com?threaded=1&timeout=5
468 471
469 472 ## used for JS client
470 473 appenlight.api_public_key = YOUR_API_PUBLIC_KEY
471 474
472 475 ## TWEAK AMOUNT OF INFO SENT HERE
473 476
474 477 ## enables 404 error logging (default False)
475 478 appenlight.report_404 = false
476 479
477 480 ## time in seconds after request is considered being slow (default 1)
478 481 appenlight.slow_request_time = 1
479 482
480 483 ## record slow requests in application
481 484 ## (needs to be enabled for slow datastore recording and time tracking)
482 485 appenlight.slow_requests = true
483 486
484 487 ## enable hooking to application loggers
485 488 appenlight.logging = true
486 489
487 490 ## minimum log level for log capture
488 491 appenlight.logging.level = WARNING
489 492
490 493 ## send logs only from erroneous/slow requests
491 494 ## (saves API quota for intensive logging)
492 495 appenlight.logging_on_error = false
493 496
494 497 ## list of additional keywords that should be grabbed from environ object
495 498 ## can be string with comma separated list of words in lowercase
496 499 ## (by default client will always send following info:
497 500 ## 'REMOTE_USER', 'REMOTE_ADDR', 'SERVER_NAME', 'CONTENT_TYPE' + all keys that
498 501 ## start with HTTP* this list be extended with additional keywords here
499 502 appenlight.environ_keys_whitelist =
500 503
501 504 ## list of keywords that should be blanked from request object
502 505 ## can be string with comma separated list of words in lowercase
503 506 ## (by default client will always blank keys that contain following words
504 507 ## 'password', 'passwd', 'pwd', 'auth_tkt', 'secret', 'csrf'
505 508 ## this list be extended with additional keywords set here
506 509 appenlight.request_keys_blacklist =
507 510
508 511 ## list of namespaces that should be ignores when gathering log entries
509 512 ## can be string with comma separated list of namespaces
510 513 ## (by default the client ignores own entries: appenlight_client.client)
511 514 appenlight.log_namespace_blacklist =
512 515
513 516 # enable debug style page
514 517 debug_style = true
515 518
516 519 ###########################################
517 520 ### MAIN RHODECODE DATABASE CONFIG ###
518 521 ###########################################
519 522 #sqlalchemy.db1.url = sqlite:///%(here)s/rhodecode.db?timeout=30
520 523 #sqlalchemy.db1.url = postgresql://postgres:qweqwe@localhost/rhodecode
521 524 #sqlalchemy.db1.url = mysql://root:qweqwe@localhost/rhodecode?charset=utf8
522 525 # pymysql is an alternative driver for MySQL, use in case of problems with default one
523 526 #sqlalchemy.db1.url = mysql+pymysql://root:qweqwe@localhost/rhodecode
524 527
525 528 sqlalchemy.db1.url = sqlite:///%(here)s/rhodecode.db?timeout=30
526 529
527 530 # see sqlalchemy docs for other advanced settings
528 531
529 532 ## print the sql statements to output
530 533 sqlalchemy.db1.echo = false
531 534 ## recycle the connections after this amount of seconds
532 535 sqlalchemy.db1.pool_recycle = 3600
533 536 sqlalchemy.db1.convert_unicode = true
534 537
535 538 ## the number of connections to keep open inside the connection pool.
536 539 ## 0 indicates no limit
537 540 #sqlalchemy.db1.pool_size = 5
538 541
539 542 ## the number of connections to allow in connection pool "overflow", that is
540 543 ## connections that can be opened above and beyond the pool_size setting,
541 544 ## which defaults to five.
542 545 #sqlalchemy.db1.max_overflow = 10
543 546
544 547 ## Connection check ping, used to detect broken database connections
545 548 ## could be enabled to better handle cases if MySQL has gone away errors
546 549 #sqlalchemy.db1.ping_connection = true
547 550
548 551 ##################
549 552 ### VCS CONFIG ###
550 553 ##################
551 554 vcs.server.enable = true
552 555 vcs.server = localhost:9900
553 556
554 557 ## Web server connectivity protocol, responsible for web based VCS operations
555 558 ## Available protocols are:
556 559 ## `http` - use http-rpc backend (default)
557 560 vcs.server.protocol = http
558 561
559 562 ## Push/Pull operations protocol, available options are:
560 563 ## `http` - use http-rpc backend (default)
561 564 vcs.scm_app_implementation = http
562 565
563 566 ## Push/Pull operations hooks protocol, available options are:
564 567 ## `http` - use http-rpc backend (default)
565 568 vcs.hooks.protocol = http
566 569
567 570 ## Host on which this instance is listening for hooks. If vcsserver is in other location
568 571 ## this should be adjusted.
569 572 vcs.hooks.host = 127.0.0.1
570 573
571 574 vcs.server.log_level = debug
572 575 ## Start VCSServer with this instance as a subprocess, useful for development
573 576 vcs.start_server = false
574 577
575 578 ## List of enabled VCS backends, available options are:
576 579 ## `hg` - mercurial
577 580 ## `git` - git
578 581 ## `svn` - subversion
579 582 vcs.backends = hg, git, svn
580 583
581 584 vcs.connection_timeout = 3600
582 585 ## Compatibility version when creating SVN repositories. Defaults to newest version when commented out.
583 586 ## Available options are: pre-1.4-compatible, pre-1.5-compatible, pre-1.6-compatible, pre-1.8-compatible, pre-1.9-compatible
584 587 #vcs.svn.compatible_version = pre-1.8-compatible
585 588
586 589
587 590 ############################################################
588 591 ### Subversion proxy support (mod_dav_svn) ###
589 592 ### Maps RhodeCode repo groups into SVN paths for Apache ###
590 593 ############################################################
591 594 ## Enable or disable the config file generation.
592 595 svn.proxy.generate_config = false
593 596 ## Generate config file with `SVNListParentPath` set to `On`.
594 597 svn.proxy.list_parent_path = true
595 598 ## Set location and file name of generated config file.
596 599 svn.proxy.config_file_path = %(here)s/mod_dav_svn.conf
597 600 ## alternative mod_dav config template. This needs to be a mako template
598 601 #svn.proxy.config_template = ~/.rccontrol/enterprise-1/custom_svn_conf.mako
599 602 ## Used as a prefix to the `Location` block in the generated config file.
600 603 ## In most cases it should be set to `/`.
601 604 svn.proxy.location_root = /
602 605 ## Command to reload the mod dav svn configuration on change.
603 606 ## Example: `/etc/init.d/apache2 reload` or /home/USER/apache_reload.sh
604 607 ## Make sure user who runs RhodeCode process is allowed to reload Apache
605 608 #svn.proxy.reload_cmd = /etc/init.d/apache2 reload
606 609 ## If the timeout expires before the reload command finishes, the command will
607 610 ## be killed. Setting it to zero means no timeout. Defaults to 10 seconds.
608 611 #svn.proxy.reload_timeout = 10
609 612
610 613 ############################################################
611 614 ### SSH Support Settings ###
612 615 ############################################################
613 616
614 617 ## Defines if a custom authorized_keys file should be created and written on
615 618 ## any change user ssh keys. Setting this to false also disables possibility
616 619 ## of adding SSH keys by users from web interface. Super admins can still
617 620 ## manage SSH Keys.
618 621 ssh.generate_authorized_keyfile = false
619 622
620 623 ## Options for ssh, default is `no-pty,no-port-forwarding,no-X11-forwarding,no-agent-forwarding`
621 624 # ssh.authorized_keys_ssh_opts =
622 625
623 626 ## Path to the authorized_keys file where the generate entries are placed.
624 627 ## It is possible to have multiple key files specified in `sshd_config` e.g.
625 628 ## AuthorizedKeysFile %h/.ssh/authorized_keys %h/.ssh/authorized_keys_rhodecode
626 629 ssh.authorized_keys_file_path = ~/.ssh/authorized_keys_rhodecode
627 630
628 631 ## Command to execute the SSH wrapper. The binary is available in the
629 632 ## RhodeCode installation directory.
630 633 ## e.g ~/.rccontrol/community-1/profile/bin/rc-ssh-wrapper
631 634 ssh.wrapper_cmd = ~/.rccontrol/community-1/rc-ssh-wrapper
632 635
633 636 ## Allow shell when executing the ssh-wrapper command
634 637 ssh.wrapper_cmd_allow_shell = false
635 638
636 639 ## Enables logging, and detailed output send back to the client during SSH
637 640 ## operations. Useful for debugging, shouldn't be used in production.
638 641 ssh.enable_debug_logging = true
639 642
640 643 ## Paths to binary executable, by default they are the names, but we can
641 644 ## override them if we want to use a custom one
642 645 ssh.executable.hg = ~/.rccontrol/vcsserver-1/profile/bin/hg
643 646 ssh.executable.git = ~/.rccontrol/vcsserver-1/profile/bin/git
644 647 ssh.executable.svn = ~/.rccontrol/vcsserver-1/profile/bin/svnserve
645 648
646 649 ## Enables SSH key generator web interface. Disabling this still allows users
647 650 ## to add their own keys.
648 651 ssh.enable_ui_key_generator = true
649 652
650 653
651 654 ## Dummy marker to add new entries after.
652 655 ## Add any custom entries below. Please don't remove.
653 656 custom.conf = 1
654 657
655 658
656 659 ################################
657 660 ### LOGGING CONFIGURATION ####
658 661 ################################
659 662 [loggers]
660 663 keys = root, sqlalchemy, beaker, celery, rhodecode, ssh_wrapper
661 664
662 665 [handlers]
663 666 keys = console, console_sql
664 667
665 668 [formatters]
666 669 keys = generic, color_formatter, color_formatter_sql
667 670
668 671 #############
669 672 ## LOGGERS ##
670 673 #############
671 674 [logger_root]
672 675 level = NOTSET
673 676 handlers = console
674 677
675 678 [logger_sqlalchemy]
676 679 level = INFO
677 680 handlers = console_sql
678 681 qualname = sqlalchemy.engine
679 682 propagate = 0
680 683
681 684 [logger_beaker]
682 685 level = DEBUG
683 686 handlers =
684 687 qualname = beaker.container
685 688 propagate = 1
686 689
687 690 [logger_rhodecode]
688 691 level = DEBUG
689 692 handlers =
690 693 qualname = rhodecode
691 694 propagate = 1
692 695
693 696 [logger_ssh_wrapper]
694 697 level = DEBUG
695 698 handlers =
696 699 qualname = ssh_wrapper
697 700 propagate = 1
698 701
699 702 [logger_celery]
700 703 level = DEBUG
701 704 handlers =
702 705 qualname = celery
703 706
704 707
705 708 ##############
706 709 ## HANDLERS ##
707 710 ##############
708 711
709 712 [handler_console]
710 713 class = StreamHandler
711 714 args = (sys.stderr, )
712 715 level = DEBUG
713 716 formatter = color_formatter
714 717
715 718 [handler_console_sql]
716 719 # "level = DEBUG" logs SQL queries and results.
717 720 # "level = INFO" logs SQL queries.
718 721 # "level = WARN" logs neither. (Recommended for production systems.)
719 722 class = StreamHandler
720 723 args = (sys.stderr, )
721 724 level = WARN
722 725 formatter = color_formatter_sql
723 726
724 727 ################
725 728 ## FORMATTERS ##
726 729 ################
727 730
728 731 [formatter_generic]
729 732 class = rhodecode.lib.logging_formatter.ExceptionAwareFormatter
730 733 format = %(asctime)s.%(msecs)03d [%(process)d] %(levelname)-5.5s [%(name)s] %(message)s
731 734 datefmt = %Y-%m-%d %H:%M:%S
732 735
733 736 [formatter_color_formatter]
734 737 class = rhodecode.lib.logging_formatter.ColorFormatter
735 738 format = %(asctime)s.%(msecs)03d [%(process)d] %(levelname)-5.5s [%(name)s] %(message)s
736 739 datefmt = %Y-%m-%d %H:%M:%S
737 740
738 741 [formatter_color_formatter_sql]
739 742 class = rhodecode.lib.logging_formatter.ColorFormatterSql
740 743 format = %(asctime)s.%(msecs)03d [%(process)d] %(levelname)-5.5s [%(name)s] %(message)s
741 744 datefmt = %Y-%m-%d %H:%M:%S
@@ -1,714 +1,717 b''
1 1
2 2
3 3 ################################################################################
4 4 ## RHODECODE COMMUNITY EDITION CONFIGURATION ##
5 5 ################################################################################
6 6
7 7 [DEFAULT]
8 8 ## Debug flag sets all loggers to debug, and enables request tracking
9 9 debug = false
10 10
11 11 ################################################################################
12 12 ## EMAIL CONFIGURATION ##
13 13 ## Uncomment and replace with the email address which should receive ##
14 14 ## any error reports after an application crash ##
15 15 ## Additionally these settings will be used by the RhodeCode mailing system ##
16 16 ################################################################################
17 17
18 18 ## prefix all emails subjects with given prefix, helps filtering out emails
19 19 #email_prefix = [RhodeCode]
20 20
21 21 ## email FROM address all mails will be sent
22 22 #app_email_from = rhodecode-noreply@localhost
23 23
24 24 #smtp_server = mail.server.com
25 25 #smtp_username =
26 26 #smtp_password =
27 27 #smtp_port =
28 28 #smtp_use_tls = false
29 29 #smtp_use_ssl = true
30 30
31 31 [server:main]
32 32 ## COMMON ##
33 33 host = 127.0.0.1
34 34 port = 5000
35 35
36 36 ###########################################################
37 37 ## WAITRESS WSGI SERVER - Recommended for Development ####
38 38 ###########################################################
39 39
40 40 #use = egg:waitress#main
41 41 ## number of worker threads
42 42 #threads = 5
43 43 ## MAX BODY SIZE 100GB
44 44 #max_request_body_size = 107374182400
45 45 ## Use poll instead of select, fixes file descriptors limits problems.
46 46 ## May not work on old windows systems.
47 47 #asyncore_use_poll = true
48 48
49 49
50 50 ##########################
51 51 ## GUNICORN WSGI SERVER ##
52 52 ##########################
53 53 ## run with gunicorn --log-config rhodecode.ini --paste rhodecode.ini
54 54
55 55 use = egg:gunicorn#main
56 56 ## Sets the number of process workers. More workers means more concurrent connections
57 57 ## RhodeCode can handle at the same time. Each additional worker also it increases
58 58 ## memory usage as each has it's own set of caches.
59 59 ## Recommended value is (2 * NUMBER_OF_CPUS + 1), eg 2CPU = 5 workers, but no more
60 60 ## than 8-10 unless for really big deployments .e.g 700-1000 users.
61 61 ## `instance_id = *` must be set in the [app:main] section below (which is the default)
62 62 ## when using more than 1 worker.
63 63 workers = 2
64 64 ## process name visible in process list
65 65 proc_name = rhodecode
66 66 ## type of worker class, one of sync, gevent
67 67 ## recommended for bigger setup is using of of other than sync one
68 68 worker_class = gevent
69 69 ## The maximum number of simultaneous clients. Valid only for Gevent
70 70 worker_connections = 10
71 71 ## max number of requests that worker will handle before being gracefully
72 72 ## restarted, could prevent memory leaks
73 73 max_requests = 1000
74 74 max_requests_jitter = 30
75 75 ## amount of time a worker can spend with handling a request before it
76 76 ## gets killed and restarted. Set to 6hrs
77 77 timeout = 21600
78 78
79 79
80 80 ## prefix middleware for RhodeCode.
81 81 ## recommended when using proxy setup.
82 82 ## allows to set RhodeCode under a prefix in server.
83 83 ## eg https://server.com/custom_prefix. Enable `filter-with =` option below as well.
84 84 ## And set your prefix like: `prefix = /custom_prefix`
85 85 ## be sure to also set beaker.session.cookie_path = /custom_prefix if you need
86 86 ## to make your cookies only work on prefix url
87 87 [filter:proxy-prefix]
88 88 use = egg:PasteDeploy#prefix
89 89 prefix = /
90 90
91 91 [app:main]
92 92 ## The %(here)s variable will be replaced with the absolute path of parent directory
93 93 ## of this file
94 94 ## In addition ENVIRONMENT variables usage is possible, e.g
95 95 ## sqlalchemy.db1.url = {ENV_RC_DB_URL}
96 96
97 97 use = egg:rhodecode-enterprise-ce
98 98
99 99 ## enable proxy prefix middleware, defined above
100 100 #filter-with = proxy-prefix
101 101
102 102 ## encryption key used to encrypt social plugin tokens,
103 103 ## remote_urls with credentials etc, if not set it defaults to
104 104 ## `beaker.session.secret`
105 105 #rhodecode.encrypted_values.secret =
106 106
107 107 ## decryption strict mode (enabled by default). It controls if decryption raises
108 108 ## `SignatureVerificationError` in case of wrong key, or damaged encryption data.
109 109 #rhodecode.encrypted_values.strict = false
110 110
111 111 ## Pick algorithm for encryption. Either fernet (more secure) or aes (default)
112 112 ## fernet is safer, and we strongly recommend switching to it.
113 113 ## Due to backward compatibility aes is used as default.
114 114 #rhodecode.encrypted_values.algorithm = fernet
115 115
116 116 ## return gzipped responses from RhodeCode (static files/application)
117 117 gzip_responses = false
118 118
119 119 ## auto-generate javascript routes file on startup
120 120 generate_js_files = false
121 121
122 122 ## System global default language.
123 123 ## All available languages: en(default), be, de, es, fr, it, ja, pl, pt, ru, zh
124 124 lang = en
125 125
126 126 ## Perform a full repository scan and import on each server start.
127 127 ## Settings this to true could lead to very long startup time.
128 128 startup.import_repos = false
129 129
130 130 ## Uncomment and set this path to use archive download cache.
131 131 ## Once enabled, generated archives will be cached at this location
132 132 ## and served from the cache during subsequent requests for the same archive of
133 133 ## the repository.
134 134 #archive_cache_dir = /tmp/tarballcache
135 135
136 136 ## URL at which the application is running. This is used for Bootstrapping
137 137 ## requests in context when no web request is available. Used in ishell, or
138 138 ## SSH calls. Set this for events to receive proper url for SSH calls.
139 139 app.base_url = http://rhodecode.local
140 140
141 141 ## Unique application ID. Should be a random unique string for security.
142 142 app_instance_uuid = rc-production
143 143
144 144 ## Cut off limit for large diffs (size in bytes). If overall diff size on
145 145 ## commit, or pull request exceeds this limit this diff will be displayed
146 146 ## partially. E.g 512000 == 512Kb
147 147 cut_off_limit_diff = 512000
148 148
149 149 ## Cut off limit for large files inside diffs (size in bytes). Each individual
150 150 ## file inside diff which exceeds this limit will be displayed partially.
151 151 ## E.g 128000 == 128Kb
152 152 cut_off_limit_file = 128000
153 153
154 154 ## use cached version of vcs repositories everywhere. Recommended to be `true`
155 155 vcs_full_cache = true
156 156
157 157 ## Force https in RhodeCode, fixes https redirects, assumes it's always https.
158 158 ## Normally this is controlled by proper http flags sent from http server
159 159 force_https = false
160 160
161 161 ## use Strict-Transport-Security headers
162 162 use_htsts = false
163 163
164 164 ## git rev filter option, --all is the default filter, if you need to
165 165 ## hide all refs in changelog switch this to --branches --tags
166 166 git_rev_filter = --branches --tags
167 167
168 168 # Set to true if your repos are exposed using the dumb protocol
169 169 git_update_server_info = false
170 170
171 171 ## RSS/ATOM feed options
172 172 rss_cut_off_limit = 256000
173 173 rss_items_per_page = 10
174 174 rss_include_diff = false
175 175
176 176 ## gist URL alias, used to create nicer urls for gist. This should be an
177 177 ## url that does rewrites to _admin/gists/{gistid}.
178 178 ## example: http://gist.rhodecode.org/{gistid}. Empty means use the internal
179 179 ## RhodeCode url, ie. http[s]://rhodecode.server/_admin/gists/{gistid}
180 180 gist_alias_url =
181 181
182 182 ## List of views (using glob pattern syntax) that AUTH TOKENS could be
183 183 ## used for access.
184 184 ## Adding ?auth_token=TOKEN_HASH to the url authenticates this request as if it
185 185 ## came from the the logged in user who own this authentication token.
186 186 ## Additionally @TOKEN syntax can be used to bound the view to specific
187 187 ## authentication token. Such view would be only accessible when used together
188 188 ## with this authentication token
189 189 ##
190 190 ## list of all views can be found under `/_admin/permissions/auth_token_access`
191 191 ## The list should be "," separated and on a single line.
192 192 ##
193 193 ## Most common views to enable:
194 194 # RepoCommitsView:repo_commit_download
195 195 # RepoCommitsView:repo_commit_patch
196 196 # RepoCommitsView:repo_commit_raw
197 197 # RepoCommitsView:repo_commit_raw@TOKEN
198 198 # RepoFilesView:repo_files_diff
199 199 # RepoFilesView:repo_archivefile
200 200 # RepoFilesView:repo_file_raw
201 201 # GistView:*
202 202 api_access_controllers_whitelist =
203 203
204 204 ## Default encoding used to convert from and to unicode
205 205 ## can be also a comma separated list of encoding in case of mixed encodings
206 206 default_encoding = UTF-8
207 207
208 208 ## instance-id prefix
209 209 ## a prefix key for this instance used for cache invalidation when running
210 210 ## multiple instances of RhodeCode, make sure it's globally unique for
211 211 ## all running RhodeCode instances. Leave empty if you don't use it
212 212 instance_id =
213 213
214 214 ## Fallback authentication plugin. Set this to a plugin ID to force the usage
215 215 ## of an authentication plugin also if it is disabled by it's settings.
216 216 ## This could be useful if you are unable to log in to the system due to broken
217 217 ## authentication settings. Then you can enable e.g. the internal RhodeCode auth
218 218 ## module to log in again and fix the settings.
219 219 ##
220 220 ## Available builtin plugin IDs (hash is part of the ID):
221 221 ## egg:rhodecode-enterprise-ce#rhodecode
222 222 ## egg:rhodecode-enterprise-ce#pam
223 223 ## egg:rhodecode-enterprise-ce#ldap
224 224 ## egg:rhodecode-enterprise-ce#jasig_cas
225 225 ## egg:rhodecode-enterprise-ce#headers
226 226 ## egg:rhodecode-enterprise-ce#crowd
227 227 #rhodecode.auth_plugin_fallback = egg:rhodecode-enterprise-ce#rhodecode
228 228
229 229 ## alternative return HTTP header for failed authentication. Default HTTP
230 230 ## response is 401 HTTPUnauthorized. Currently HG clients have troubles with
231 231 ## handling that causing a series of failed authentication calls.
232 232 ## Set this variable to 403 to return HTTPForbidden, or any other HTTP code
233 233 ## This will be served instead of default 401 on bad authentication
234 234 auth_ret_code =
235 235
236 236 ## use special detection method when serving auth_ret_code, instead of serving
237 237 ## ret_code directly, use 401 initially (Which triggers credentials prompt)
238 238 ## and then serve auth_ret_code to clients
239 239 auth_ret_code_detection = false
240 240
241 241 ## locking return code. When repository is locked return this HTTP code. 2XX
242 242 ## codes don't break the transactions while 4XX codes do
243 243 lock_ret_code = 423
244 244
245 245 ## allows to change the repository location in settings page
246 246 allow_repo_location_change = true
247 247
248 248 ## allows to setup custom hooks in settings page
249 249 allow_custom_hooks_settings = true
250 250
251 251 ## Generated license token required for EE edition license.
252 252 ## New generated token value can be found in Admin > settings > license page.
253 253 license_token =
254 254
255 255 ## supervisor connection uri, for managing supervisor and logs.
256 256 supervisor.uri =
257 257 ## supervisord group name/id we only want this RC instance to handle
258 258 supervisor.group_id = prod
259 259
260 260 ## Display extended labs settings
261 261 labs_settings_active = true
262 262
263 263 ## Custom exception store path, defaults to TMPDIR
264 264 ## This is used to store exception from RhodeCode in shared directory
265 265 #exception_tracker.store_path =
266 266
267 267 ## File store configuration. This is used to store and serve uploaded files
268 268 file_store.enabled = true
269 269 ## Storage backend, available options are: local
270 270 file_store.backend = local
271 271 ## path to store the uploaded binaries
272 272 file_store.storage_path = %(here)s/data/file_store
273 273
274 274
275 275 ####################################
276 276 ### CELERY CONFIG ####
277 277 ####################################
278 278 ## run: /path/to/celery worker \
279 279 ## -E --beat --app rhodecode.lib.celerylib.loader \
280 280 ## --scheduler rhodecode.lib.celerylib.scheduler.RcScheduler \
281 281 ## --loglevel DEBUG --ini /path/to/rhodecode.ini
282 282
283 283 use_celery = false
284 284
285 ## connection url to the message broker (default rabbitmq)
286 celery.broker_url = amqp://rabbitmq:qweqwe@localhost:5672/rabbitmqhost
285 ## connection url to the message broker (default redis)
286 celery.broker_url = redis://localhost:6379/8
287
288 ## rabbitmq example
289 #celery.broker_url = amqp://rabbitmq:qweqwe@localhost:5672/rabbitmqhost
287 290
288 291 ## maximum tasks to execute before worker restart
289 292 celery.max_tasks_per_child = 100
290 293
291 294 ## tasks will never be sent to the queue, but executed locally instead.
292 295 celery.task_always_eager = false
293 296
294 297 #####################################
295 298 ### DOGPILE CACHE ####
296 299 #####################################
297 300 ## Default cache dir for caches. Putting this into a ramdisk
298 301 ## can boost performance, eg. /tmpfs/data_ramdisk, however this directory might require
299 302 ## large amount of space
300 303 cache_dir = %(here)s/data
301 304
302 305 ## `cache_perms` cache settings for permission tree, auth TTL.
303 306 rc_cache.cache_perms.backend = dogpile.cache.rc.file_namespace
304 307 rc_cache.cache_perms.expiration_time = 300
305 308
306 309 ## alternative `cache_perms` redis backend with distributed lock
307 310 #rc_cache.cache_perms.backend = dogpile.cache.rc.redis
308 311 #rc_cache.cache_perms.expiration_time = 300
309 312 ## redis_expiration_time needs to be greater then expiration_time
310 313 #rc_cache.cache_perms.arguments.redis_expiration_time = 7200
311 314 #rc_cache.cache_perms.arguments.socket_timeout = 30
312 315 #rc_cache.cache_perms.arguments.host = localhost
313 316 #rc_cache.cache_perms.arguments.port = 6379
314 317 #rc_cache.cache_perms.arguments.db = 0
315 318 ## more Redis options: https://dogpilecache.sqlalchemy.org/en/latest/api.html#redis-backends
316 319 #rc_cache.cache_perms.arguments.distributed_lock = true
317 320
318 321 ## `cache_repo` cache settings for FileTree, Readme, RSS FEEDS
319 322 rc_cache.cache_repo.backend = dogpile.cache.rc.file_namespace
320 323 rc_cache.cache_repo.expiration_time = 2592000
321 324
322 325 ## alternative `cache_repo` redis backend with distributed lock
323 326 #rc_cache.cache_repo.backend = dogpile.cache.rc.redis
324 327 #rc_cache.cache_repo.expiration_time = 2592000
325 328 ## redis_expiration_time needs to be greater then expiration_time
326 329 #rc_cache.cache_repo.arguments.redis_expiration_time = 2678400
327 330 #rc_cache.cache_repo.arguments.socket_timeout = 30
328 331 #rc_cache.cache_repo.arguments.host = localhost
329 332 #rc_cache.cache_repo.arguments.port = 6379
330 333 #rc_cache.cache_repo.arguments.db = 1
331 334 ## more Redis options: https://dogpilecache.sqlalchemy.org/en/latest/api.html#redis-backends
332 335 #rc_cache.cache_repo.arguments.distributed_lock = true
333 336
334 337 ## cache settings for SQL queries, this needs to use memory type backend
335 338 rc_cache.sql_cache_short.backend = dogpile.cache.rc.memory_lru
336 339 rc_cache.sql_cache_short.expiration_time = 30
337 340
338 341 ## `cache_repo_longterm` cache for repo object instances, this needs to use memory
339 342 ## type backend as the objects kept are not pickle serializable
340 343 rc_cache.cache_repo_longterm.backend = dogpile.cache.rc.memory_lru
341 344 ## by default we use 96H, this is using invalidation on push anyway
342 345 rc_cache.cache_repo_longterm.expiration_time = 345600
343 346 ## max items in LRU cache, reduce this number to save memory, and expire last used
344 347 ## cached objects
345 348 rc_cache.cache_repo_longterm.max_size = 10000
346 349
347 350
348 351 ####################################
349 352 ### BEAKER SESSION ####
350 353 ####################################
351 354
352 355 ## .session.type is type of storage options for the session, current allowed
353 356 ## types are file, ext:memcached, ext:redis, ext:database, and memory (default).
354 357 beaker.session.type = file
355 358 beaker.session.data_dir = %(here)s/data/sessions
356 359
357 360 ## redis sessions
358 361 #beaker.session.type = ext:redis
359 362 #beaker.session.url = redis://127.0.0.1:6379/2
360 363
361 364 ## db based session, fast, and allows easy management over logged in users
362 365 #beaker.session.type = ext:database
363 366 #beaker.session.table_name = db_session
364 367 #beaker.session.sa.url = postgresql://postgres:secret@localhost/rhodecode
365 368 #beaker.session.sa.url = mysql://root:secret@127.0.0.1/rhodecode
366 369 #beaker.session.sa.pool_recycle = 3600
367 370 #beaker.session.sa.echo = false
368 371
369 372 beaker.session.key = rhodecode
370 373 beaker.session.secret = production-rc-uytcxaz
371 374 beaker.session.lock_dir = %(here)s/data/sessions/lock
372 375
373 376 ## Secure encrypted cookie. Requires AES and AES python libraries
374 377 ## you must disable beaker.session.secret to use this
375 378 #beaker.session.encrypt_key = key_for_encryption
376 379 #beaker.session.validate_key = validation_key
377 380
378 381 ## sets session as invalid(also logging out user) if it haven not been
379 382 ## accessed for given amount of time in seconds
380 383 beaker.session.timeout = 2592000
381 384 beaker.session.httponly = true
382 385 ## Path to use for the cookie. Set to prefix if you use prefix middleware
383 386 #beaker.session.cookie_path = /custom_prefix
384 387
385 388 ## uncomment for https secure cookie
386 389 beaker.session.secure = false
387 390
388 391 ## auto save the session to not to use .save()
389 392 beaker.session.auto = false
390 393
391 394 ## default cookie expiration time in seconds, set to `true` to set expire
392 395 ## at browser close
393 396 #beaker.session.cookie_expires = 3600
394 397
395 398 ###################################
396 399 ## SEARCH INDEXING CONFIGURATION ##
397 400 ###################################
398 401 ## Full text search indexer is available in rhodecode-tools under
399 402 ## `rhodecode-tools index` command
400 403
401 404 ## WHOOSH Backend, doesn't require additional services to run
402 405 ## it works good with few dozen repos
403 406 search.module = rhodecode.lib.index.whoosh
404 407 search.location = %(here)s/data/index
405 408
406 409 ########################################
407 410 ### CHANNELSTREAM CONFIG ####
408 411 ########################################
409 412 ## channelstream enables persistent connections and live notification
410 413 ## in the system. It's also used by the chat system
411 414
412 415 channelstream.enabled = false
413 416
414 417 ## server address for channelstream server on the backend
415 418 channelstream.server = 127.0.0.1:9800
416 419
417 420 ## location of the channelstream server from outside world
418 421 ## use ws:// for http or wss:// for https. This address needs to be handled
419 422 ## by external HTTP server such as Nginx or Apache
420 423 ## see Nginx/Apache configuration examples in our docs
421 424 channelstream.ws_url = ws://rhodecode.yourserver.com/_channelstream
422 425 channelstream.secret = secret
423 426 channelstream.history.location = %(here)s/channelstream_history
424 427
425 428 ## Internal application path that Javascript uses to connect into.
426 429 ## If you use proxy-prefix the prefix should be added before /_channelstream
427 430 channelstream.proxy_path = /_channelstream
428 431
429 432
430 433 ###################################
431 434 ## APPENLIGHT CONFIG ##
432 435 ###################################
433 436
434 437 ## Appenlight is tailored to work with RhodeCode, see
435 438 ## http://appenlight.com for details how to obtain an account
436 439
437 440 ## Appenlight integration enabled
438 441 appenlight = false
439 442
440 443 appenlight.server_url = https://api.appenlight.com
441 444 appenlight.api_key = YOUR_API_KEY
442 445 #appenlight.transport_config = https://api.appenlight.com?threaded=1&timeout=5
443 446
444 447 ## used for JS client
445 448 appenlight.api_public_key = YOUR_API_PUBLIC_KEY
446 449
447 450 ## TWEAK AMOUNT OF INFO SENT HERE
448 451
449 452 ## enables 404 error logging (default False)
450 453 appenlight.report_404 = false
451 454
452 455 ## time in seconds after request is considered being slow (default 1)
453 456 appenlight.slow_request_time = 1
454 457
455 458 ## record slow requests in application
456 459 ## (needs to be enabled for slow datastore recording and time tracking)
457 460 appenlight.slow_requests = true
458 461
459 462 ## enable hooking to application loggers
460 463 appenlight.logging = true
461 464
462 465 ## minimum log level for log capture
463 466 appenlight.logging.level = WARNING
464 467
465 468 ## send logs only from erroneous/slow requests
466 469 ## (saves API quota for intensive logging)
467 470 appenlight.logging_on_error = false
468 471
469 472 ## list of additional keywords that should be grabbed from environ object
470 473 ## can be string with comma separated list of words in lowercase
471 474 ## (by default client will always send following info:
472 475 ## 'REMOTE_USER', 'REMOTE_ADDR', 'SERVER_NAME', 'CONTENT_TYPE' + all keys that
473 476 ## start with HTTP* this list be extended with additional keywords here
474 477 appenlight.environ_keys_whitelist =
475 478
476 479 ## list of keywords that should be blanked from request object
477 480 ## can be string with comma separated list of words in lowercase
478 481 ## (by default client will always blank keys that contain following words
479 482 ## 'password', 'passwd', 'pwd', 'auth_tkt', 'secret', 'csrf'
480 483 ## this list be extended with additional keywords set here
481 484 appenlight.request_keys_blacklist =
482 485
483 486 ## list of namespaces that should be ignores when gathering log entries
484 487 ## can be string with comma separated list of namespaces
485 488 ## (by default the client ignores own entries: appenlight_client.client)
486 489 appenlight.log_namespace_blacklist =
487 490
488 491
489 492 ###########################################
490 493 ### MAIN RHODECODE DATABASE CONFIG ###
491 494 ###########################################
492 495 #sqlalchemy.db1.url = sqlite:///%(here)s/rhodecode.db?timeout=30
493 496 #sqlalchemy.db1.url = postgresql://postgres:qweqwe@localhost/rhodecode
494 497 #sqlalchemy.db1.url = mysql://root:qweqwe@localhost/rhodecode?charset=utf8
495 498 # pymysql is an alternative driver for MySQL, use in case of problems with default one
496 499 #sqlalchemy.db1.url = mysql+pymysql://root:qweqwe@localhost/rhodecode
497 500
498 501 sqlalchemy.db1.url = postgresql://postgres:qweqwe@localhost/rhodecode
499 502
500 503 # see sqlalchemy docs for other advanced settings
501 504
502 505 ## print the sql statements to output
503 506 sqlalchemy.db1.echo = false
504 507 ## recycle the connections after this amount of seconds
505 508 sqlalchemy.db1.pool_recycle = 3600
506 509 sqlalchemy.db1.convert_unicode = true
507 510
508 511 ## the number of connections to keep open inside the connection pool.
509 512 ## 0 indicates no limit
510 513 #sqlalchemy.db1.pool_size = 5
511 514
512 515 ## the number of connections to allow in connection pool "overflow", that is
513 516 ## connections that can be opened above and beyond the pool_size setting,
514 517 ## which defaults to five.
515 518 #sqlalchemy.db1.max_overflow = 10
516 519
517 520 ## Connection check ping, used to detect broken database connections
518 521 ## could be enabled to better handle cases if MySQL has gone away errors
519 522 #sqlalchemy.db1.ping_connection = true
520 523
521 524 ##################
522 525 ### VCS CONFIG ###
523 526 ##################
524 527 vcs.server.enable = true
525 528 vcs.server = localhost:9900
526 529
527 530 ## Web server connectivity protocol, responsible for web based VCS operations
528 531 ## Available protocols are:
529 532 ## `http` - use http-rpc backend (default)
530 533 vcs.server.protocol = http
531 534
532 535 ## Push/Pull operations protocol, available options are:
533 536 ## `http` - use http-rpc backend (default)
534 537 vcs.scm_app_implementation = http
535 538
536 539 ## Push/Pull operations hooks protocol, available options are:
537 540 ## `http` - use http-rpc backend (default)
538 541 vcs.hooks.protocol = http
539 542
540 543 ## Host on which this instance is listening for hooks. If vcsserver is in other location
541 544 ## this should be adjusted.
542 545 vcs.hooks.host = 127.0.0.1
543 546
544 547 vcs.server.log_level = info
545 548 ## Start VCSServer with this instance as a subprocess, useful for development
546 549 vcs.start_server = false
547 550
548 551 ## List of enabled VCS backends, available options are:
549 552 ## `hg` - mercurial
550 553 ## `git` - git
551 554 ## `svn` - subversion
552 555 vcs.backends = hg, git, svn
553 556
554 557 vcs.connection_timeout = 3600
555 558 ## Compatibility version when creating SVN repositories. Defaults to newest version when commented out.
556 559 ## Available options are: pre-1.4-compatible, pre-1.5-compatible, pre-1.6-compatible, pre-1.8-compatible, pre-1.9-compatible
557 560 #vcs.svn.compatible_version = pre-1.8-compatible
558 561
559 562
560 563 ############################################################
561 564 ### Subversion proxy support (mod_dav_svn) ###
562 565 ### Maps RhodeCode repo groups into SVN paths for Apache ###
563 566 ############################################################
564 567 ## Enable or disable the config file generation.
565 568 svn.proxy.generate_config = false
566 569 ## Generate config file with `SVNListParentPath` set to `On`.
567 570 svn.proxy.list_parent_path = true
568 571 ## Set location and file name of generated config file.
569 572 svn.proxy.config_file_path = %(here)s/mod_dav_svn.conf
570 573 ## alternative mod_dav config template. This needs to be a mako template
571 574 #svn.proxy.config_template = ~/.rccontrol/enterprise-1/custom_svn_conf.mako
572 575 ## Used as a prefix to the `Location` block in the generated config file.
573 576 ## In most cases it should be set to `/`.
574 577 svn.proxy.location_root = /
575 578 ## Command to reload the mod dav svn configuration on change.
576 579 ## Example: `/etc/init.d/apache2 reload` or /home/USER/apache_reload.sh
577 580 ## Make sure user who runs RhodeCode process is allowed to reload Apache
578 581 #svn.proxy.reload_cmd = /etc/init.d/apache2 reload
579 582 ## If the timeout expires before the reload command finishes, the command will
580 583 ## be killed. Setting it to zero means no timeout. Defaults to 10 seconds.
581 584 #svn.proxy.reload_timeout = 10
582 585
583 586 ############################################################
584 587 ### SSH Support Settings ###
585 588 ############################################################
586 589
587 590 ## Defines if a custom authorized_keys file should be created and written on
588 591 ## any change user ssh keys. Setting this to false also disables possibility
589 592 ## of adding SSH keys by users from web interface. Super admins can still
590 593 ## manage SSH Keys.
591 594 ssh.generate_authorized_keyfile = false
592 595
593 596 ## Options for ssh, default is `no-pty,no-port-forwarding,no-X11-forwarding,no-agent-forwarding`
594 597 # ssh.authorized_keys_ssh_opts =
595 598
596 599 ## Path to the authorized_keys file where the generate entries are placed.
597 600 ## It is possible to have multiple key files specified in `sshd_config` e.g.
598 601 ## AuthorizedKeysFile %h/.ssh/authorized_keys %h/.ssh/authorized_keys_rhodecode
599 602 ssh.authorized_keys_file_path = ~/.ssh/authorized_keys_rhodecode
600 603
601 604 ## Command to execute the SSH wrapper. The binary is available in the
602 605 ## RhodeCode installation directory.
603 606 ## e.g ~/.rccontrol/community-1/profile/bin/rc-ssh-wrapper
604 607 ssh.wrapper_cmd = ~/.rccontrol/community-1/rc-ssh-wrapper
605 608
606 609 ## Allow shell when executing the ssh-wrapper command
607 610 ssh.wrapper_cmd_allow_shell = false
608 611
609 612 ## Enables logging, and detailed output send back to the client during SSH
610 613 ## operations. Useful for debugging, shouldn't be used in production.
611 614 ssh.enable_debug_logging = false
612 615
613 616 ## Paths to binary executable, by default they are the names, but we can
614 617 ## override them if we want to use a custom one
615 618 ssh.executable.hg = ~/.rccontrol/vcsserver-1/profile/bin/hg
616 619 ssh.executable.git = ~/.rccontrol/vcsserver-1/profile/bin/git
617 620 ssh.executable.svn = ~/.rccontrol/vcsserver-1/profile/bin/svnserve
618 621
619 622 ## Enables SSH key generator web interface. Disabling this still allows users
620 623 ## to add their own keys.
621 624 ssh.enable_ui_key_generator = true
622 625
623 626
624 627 ## Dummy marker to add new entries after.
625 628 ## Add any custom entries below. Please don't remove.
626 629 custom.conf = 1
627 630
628 631
629 632 ################################
630 633 ### LOGGING CONFIGURATION ####
631 634 ################################
632 635 [loggers]
633 636 keys = root, sqlalchemy, beaker, celery, rhodecode, ssh_wrapper
634 637
635 638 [handlers]
636 639 keys = console, console_sql
637 640
638 641 [formatters]
639 642 keys = generic, color_formatter, color_formatter_sql
640 643
641 644 #############
642 645 ## LOGGERS ##
643 646 #############
644 647 [logger_root]
645 648 level = NOTSET
646 649 handlers = console
647 650
648 651 [logger_sqlalchemy]
649 652 level = INFO
650 653 handlers = console_sql
651 654 qualname = sqlalchemy.engine
652 655 propagate = 0
653 656
654 657 [logger_beaker]
655 658 level = DEBUG
656 659 handlers =
657 660 qualname = beaker.container
658 661 propagate = 1
659 662
660 663 [logger_rhodecode]
661 664 level = DEBUG
662 665 handlers =
663 666 qualname = rhodecode
664 667 propagate = 1
665 668
666 669 [logger_ssh_wrapper]
667 670 level = DEBUG
668 671 handlers =
669 672 qualname = ssh_wrapper
670 673 propagate = 1
671 674
672 675 [logger_celery]
673 676 level = DEBUG
674 677 handlers =
675 678 qualname = celery
676 679
677 680
678 681 ##############
679 682 ## HANDLERS ##
680 683 ##############
681 684
682 685 [handler_console]
683 686 class = StreamHandler
684 687 args = (sys.stderr, )
685 688 level = INFO
686 689 formatter = generic
687 690
688 691 [handler_console_sql]
689 692 # "level = DEBUG" logs SQL queries and results.
690 693 # "level = INFO" logs SQL queries.
691 694 # "level = WARN" logs neither. (Recommended for production systems.)
692 695 class = StreamHandler
693 696 args = (sys.stderr, )
694 697 level = WARN
695 698 formatter = generic
696 699
697 700 ################
698 701 ## FORMATTERS ##
699 702 ################
700 703
701 704 [formatter_generic]
702 705 class = rhodecode.lib.logging_formatter.ExceptionAwareFormatter
703 706 format = %(asctime)s.%(msecs)03d [%(process)d] %(levelname)-5.5s [%(name)s] %(message)s
704 707 datefmt = %Y-%m-%d %H:%M:%S
705 708
706 709 [formatter_color_formatter]
707 710 class = rhodecode.lib.logging_formatter.ColorFormatter
708 711 format = %(asctime)s.%(msecs)03d [%(process)d] %(levelname)-5.5s [%(name)s] %(message)s
709 712 datefmt = %Y-%m-%d %H:%M:%S
710 713
711 714 [formatter_color_formatter_sql]
712 715 class = rhodecode.lib.logging_formatter.ColorFormatterSql
713 716 format = %(asctime)s.%(msecs)03d [%(process)d] %(levelname)-5.5s [%(name)s] %(message)s
714 717 datefmt = %Y-%m-%d %H:%M:%S
@@ -1,395 +1,395 b''
1 1 .. _scale-horizontal-cluster:
2 2
3 3
4 4 Scale Horizontally / RhodeCode Cluster
5 5 --------------------------------------
6 6
7 7 |RCE| is built in a way it support horizontal scaling across multiple machines.
8 8 There are three main pre-requisites for that:
9 9
10 10 - Shared storage that each machine can access. Using NFS or other shared storage system.
11 11 - Shared DB connection across machines. Using `MySQL`/`PostgreSQL` that each node can access.
12 12 - |RCE| user sessions and caches need to use a shared storage (e.g `Redis`_/`Memcached`)
13 13
14 14
15 15 Horizontal scaling means adding more machines or workers into your pool of
16 16 resources. Horizontally scaling |RCE| gives a huge performance increase,
17 17 especially under large traffic scenarios with a high number of requests.
18 18 This is very beneficial when |RCE| is serving many users simultaneously,
19 19 or if continuous integration servers are automatically pulling and pushing code.
20 20 It also adds High-Availability to your running system.
21 21
22 22
23 23 Cluster Overview
24 24 ^^^^^^^^^^^^^^^^
25 25
26 26 Below we'll present a configuration example that will use two separate nodes to serve
27 27 |RCE| in a load-balanced environment. The 3rd node will act as a shared storage/cache
28 28 and handle load-balancing. In addition 3rd node will be used as shared database instance.
29 29
30 30 This setup can be used both in Docker based configuration or with individual
31 31 physical/virtual machines. Using the 3rd node for Storage/Redis/PostgreSQL/Nginx is
32 32 optional. All those components can be installed on one of the two nodes used for |RCE|.
33 33 We'll use following naming for our nodes:
34 34
35 35 - `rc-node-1` (NFS, DB, Cache node)
36 36 - `rc-node-2` (Worker node1)
37 37 - `rc-node-3` (Worker node2)
38 38
39 39 Our shares NFS storage in the example is located on `/home/rcdev/storage` and
40 40 it's RW accessible on **each** node.
41 41
42 42 In this example we used certain recommended components, however many
43 43 of those can be replaced by other, in case your organization already uses them, for example:
44 44
45 45 - `MySQL`/`PostgreSQL`: Aren't replaceable and are the two only supported databases.
46 46 - `Nginx`_ on `rc-node-1` can be replaced by: `Hardware Load Balancer (F5)`, `Apache`_, `HA-Proxy` etc.
47 47 - `Nginx`_ on rc-node-2/3 acts as a reverse proxy and can be replaced by other HTTP server
48 48 acting as reverse proxy such as `Apache`_.
49 49 - `Redis`_ on `rc-node-1` can be replaced by: `Memcached`
50 50
51 51
52 52 Here's an overview what components should be installed/setup on each server in our example:
53 53
54 54 - **rc-node-1**:
55 55
56 56 - main storage acting as NFS host.
57 57 - `nginx` acting as a load-balancer.
58 58 - `postgresql-server` used for database and sessions.
59 59 - `redis-server` used for storing shared caches.
60 - optionally `rabbitmq-server` for `Celery` if used.
60 - optionally `rabbitmq-server` or `redis` for `Celery` if used.
61 61 - optionally if `Celery` is used Enterprise/Community instance + VCSServer.
62 62 - optionally mailserver that can be shared by other instances.
63 63 - optionally channelstream server to handle live communication for all instances.
64 64
65 65
66 66 - **rc-node-2/3**:
67 67
68 68 - `nginx` acting as a reverse proxy to handle requests to |RCE|.
69 69 - 1x RhodeCode Enterprise/Community instance.
70 70 - 1x VCSServer instance.
71 71 - optionally for testing connection: postgresql-client, redis-client (redis-tools).
72 72
73 73
74 74 Before we start here are few assumptions that should be fulfilled:
75 75
76 76 - make sure each node can access each other.
77 77 - make sure `Redis`_/`MySQL`/`PostgreSQL`/`RabbitMQ`_ are running on `rc-node-1`
78 78 - make sure both `rc-node-2`/`3` can access NFS storage with RW access
79 79 - make sure rc-node-2/3 can access `Redis`_/`PostgreSQL`, `MySQL` database on `rc-node-1`.
80 80 - make sure `Redis`_/Database/`RabbitMQ`_ are password protected and accessible only from rc-node-2/3.
81 81
82 82
83 83
84 84 Setup rc-node-2/3
85 85 ^^^^^^^^^^^^^^^^^
86 86
87 87 Initially before `rc-node-1` we'll configure both nodes 2 and 3 to operate as standalone
88 88 nodes with their own hostnames. Use a default installation settings, and use
89 89 the default local addresses (127.0.0.1) to configure VCSServer and Community/Enterprise instances.
90 90 All external connectivity will be handled by the reverse proxy (`Nginx`_ in our example).
91 91
92 92 This way we can ensure each individual host works,
93 93 accepts connections, or do some operations explicitly on chosen node.
94 94
95 95 In addition this would allow use to explicitly direct certain traffic to a node, e.g
96 96 CI server will only call directly `rc-node-3`. This should be done similar to normal
97 97 installation so check out `Nginx`_/`Apache`_ configuration example to configure each host.
98 98 Each one should already connect to shared database during installation.
99 99
100 100
101 101 1) Assuming our final url will be http://rc-node-1, Configure `instances_id`, `app.base_url`
102 102
103 103 a) On **rc-node-2** find the following settings and edit :file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.ini`
104 104
105 105 .. code-block:: ini
106 106
107 107 ## required format is: *NAME-
108 108 instance_id = *rc-node-2-
109 109 app.base_url = http://rc-node-1
110 110
111 111
112 112 b) On **rc-node-3** find the following settings and edit :file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.ini`
113 113
114 114 .. code-block:: ini
115 115
116 116 ## required format is: *NAME-
117 117 instance_id = *rc-node-3-
118 118 app.base_url = http://rc-node-1
119 119
120 120
121 121
122 122 2) Configure `User Session` to use a shared database. Example config that should be
123 123 changed on both **rc-node-2** and **rc-node-3** .
124 124 Edit :file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.ini`
125 125
126 126 .. code-block:: ini
127 127
128 128 ####################################
129 129 ### BEAKER SESSION ####
130 130 ####################################
131 131
132 132 ## Disable the default `file` sessions
133 133 #beaker.session.type = file
134 134 #beaker.session.data_dir = %(here)s/data/sessions
135 135
136 136 ## use shared db based session, fast, and allows easy management over logged in users
137 137 beaker.session.type = ext:database
138 138 beaker.session.table_name = db_session
139 139 # use our rc-node-1 here
140 140 beaker.session.sa.url = postgresql://postgres:qweqwe@rc-node-1/rhodecode
141 141 beaker.session.sa.pool_recycle = 3600
142 142 beaker.session.sa.echo = false
143 143
144 144 In addition make sure both instances use the same `session.secret` so users have
145 145 persistent sessions across nodes. Please generate other one then in this example.
146 146
147 147 .. code-block:: ini
148 148
149 149 # use a unique generated long string
150 150 beaker.session.secret = 70e116cae2274656ba7265fd860aebbd
151 151
152 152 3) Configure stored cached/archive cache to our shared NFS `rc-node-1`
153 153
154 154 .. code-block:: ini
155 155
156 156 # note the `_` prefix that allows using a directory without
157 157 # remap and rescan checking for vcs inside it.
158 158 cache_dir = /home/rcdev/storage/_cache_dir/data
159 159 # note archive cache dir is disabled by default, however if you enable
160 160 # it also needs to be shared
161 161 #archive_cache_dir = /home/rcdev/storage/_tarball_cache_dir
162 162
163 163
164 164 4) Use shared exception store. Example config that should be
165 165 changed on both **rc-node-2** and **rc-node-3**, and also for VCSServer.
166 166 Edit :file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.ini` and
167 167 :file:`/home/{user}/.rccontrol/{vcsserver-instance-id}/vcsserver.ini`
168 168 and add/change following setting.
169 169
170 170 .. code-block:: ini
171 171
172 172 exception_tracker.store_path = /home/rcdev/storage/_exception_store_data
173 173
174 174
175 175 5) Change cache backends to use `Redis`_ based caches. Below full example config
176 176 that replaces default file-based cache to shared `Redis`_ with Distributed Lock.
177 177
178 178
179 179 .. code-block:: ini
180 180
181 181 #####################################
182 182 ### DOGPILE CACHE ####
183 183 #####################################
184 184
185 185 ## `cache_perms` cache settings for permission tree, auth TTL.
186 186 #rc_cache.cache_perms.backend = dogpile.cache.rc.file_namespace
187 187 #rc_cache.cache_perms.expiration_time = 300
188 188
189 189 ## alternative `cache_perms` redis backend with distributed lock
190 190 rc_cache.cache_perms.backend = dogpile.cache.rc.redis
191 191 rc_cache.cache_perms.expiration_time = 300
192 192 ## redis_expiration_time needs to be greater then expiration_time
193 193 rc_cache.cache_perms.arguments.redis_expiration_time = 7200
194 194 rc_cache.cache_perms.arguments.socket_timeout = 30
195 195 rc_cache.cache_perms.arguments.host = rc-node-1
196 196 rc_cache.cache_perms.arguments.password = qweqwe
197 197 rc_cache.cache_perms.arguments.port = 6379
198 198 rc_cache.cache_perms.arguments.db = 0
199 199 rc_cache.cache_perms.arguments.distributed_lock = true
200 200
201 201 ## `cache_repo` cache settings for FileTree, Readme, RSS FEEDS
202 202 #rc_cache.cache_repo.backend = dogpile.cache.rc.file_namespace
203 203 #rc_cache.cache_repo.expiration_time = 2592000
204 204
205 205 ## alternative `cache_repo` redis backend with distributed lock
206 206 rc_cache.cache_repo.backend = dogpile.cache.rc.redis
207 207 rc_cache.cache_repo.expiration_time = 2592000
208 208 ## redis_expiration_time needs to be greater then expiration_time
209 209 rc_cache.cache_repo.arguments.redis_expiration_time = 2678400
210 210 rc_cache.cache_repo.arguments.socket_timeout = 30
211 211 rc_cache.cache_repo.arguments.host = rc-node-1
212 212 rc_cache.cache_repo.arguments.password = qweqwe
213 213 rc_cache.cache_repo.arguments.port = 6379
214 214 rc_cache.cache_repo.arguments.db = 1
215 215 rc_cache.cache_repo.arguments.distributed_lock = true
216 216
217 217 ## cache settings for SQL queries, this needs to use memory type backend
218 218 rc_cache.sql_cache_short.backend = dogpile.cache.rc.memory_lru
219 219 rc_cache.sql_cache_short.expiration_time = 30
220 220
221 221 ## `cache_repo_longterm` cache for repo object instances, this needs to use memory
222 222 ## type backend as the objects kept are not pickle serializable
223 223 rc_cache.cache_repo_longterm.backend = dogpile.cache.rc.memory_lru
224 224 ## by default we use 96H, this is using invalidation on push anyway
225 225 rc_cache.cache_repo_longterm.expiration_time = 345600
226 226 ## max items in LRU cache, reduce this number to save memory, and expire last used
227 227 ## cached objects
228 228 rc_cache.cache_repo_longterm.max_size = 10000
229 229
230 230
231 231 6) Configure `Nginx`_ as reverse proxy on `rc-node-2/3`:
232 232 Minimal `Nginx`_ config used:
233 233
234 234
235 235 .. code-block:: nginx
236 236
237 237 ## rate limiter for certain pages to prevent brute force attacks
238 238 limit_req_zone $binary_remote_addr zone=req_limit:10m rate=1r/s;
239 239
240 240 ## custom log format
241 241 log_format log_custom '$remote_addr - $remote_user [$time_local] '
242 242 '"$request" $status $body_bytes_sent '
243 243 '"$http_referer" "$http_user_agent" '
244 244 '$request_time $upstream_response_time $pipe';
245 245
246 246 server {
247 247 listen 80;
248 248 server_name rc-node-2;
249 249 #server_name rc-node-3;
250 250
251 251 access_log /var/log/nginx/rhodecode.access.log log_custom;
252 252 error_log /var/log/nginx/rhodecode.error.log;
253 253
254 254 # example of proxy.conf can be found in our docs.
255 255 include /etc/nginx/proxy.conf;
256 256
257 257 ## serve static files by Nginx, recommended for performance
258 258 location /_static/rhodecode {
259 259 gzip on;
260 260 gzip_min_length 500;
261 261 gzip_proxied any;
262 262 gzip_comp_level 4;
263 263 gzip_types text/css text/javascript text/xml text/plain text/x-component application/javascript application/json application/xml application/rss+xml font/truetype font/opentype application/vnd.ms-fontobject image/svg+xml;
264 264 gzip_vary on;
265 265 gzip_disable "msie6";
266 266 #alias /home/rcdev/.rccontrol/community-1/static;
267 267 alias /home/rcdev/.rccontrol/enterprise-1/static;
268 268 }
269 269
270 270
271 271 location /_admin/login {
272 272 limit_req zone=req_limit burst=10 nodelay;
273 273 try_files $uri @rhode;
274 274 }
275 275
276 276 location / {
277 277 try_files $uri @rhode;
278 278 }
279 279
280 280 location @rhode {
281 281 # Url to running RhodeCode instance.
282 282 # This is shown as `- URL: <host>` in output from rccontrol status.
283 283 proxy_pass http://127.0.0.1:10020;
284 284 }
285 285
286 286 ## custom 502 error page. Will be displayed while RhodeCode server
287 287 ## is turned off
288 288 error_page 502 /502.html;
289 289 location = /502.html {
290 290 #root /home/rcdev/.rccontrol/community-1/static;
291 291 root /home/rcdev/.rccontrol/enterprise-1/static;
292 292 }
293 293 }
294 294
295 295
296 296 7) Optional: Full text search, in case you use `Whoosh` full text search we also need a
297 297 shared storage for the index. In our example our NFS is mounted at `/home/rcdev/storage`
298 298 which represents out storage so we can use the following:
299 299
300 300 .. code-block:: ini
301 301
302 302 # note the `_` prefix that allows using a directory without
303 303 # remap and rescan checking for vcs inside it.
304 304 search.location = /home/rcdev/storage/_index_data/index
305 305
306 306
307 307 .. note::
308 308
309 309 If you use ElasticSearch it's by default shared, and simply running ES node is
310 310 by default cluster compatible.
311 311
312 312
313 313 8) Optional: If you intend to use mailing all instances need to use either a shared
314 314 mailing node, or each will use individual local mail agent. Simply put node-1/2/3
315 315 needs to use same mailing configuration.
316 316
317 317
318 318
319 319 Setup rc-node-1
320 320 ^^^^^^^^^^^^^^^
321 321
322 322
323 323 Configure `Nginx`_ as Load Balancer to rc-node-2/3.
324 324 Minimal `Nginx`_ example below:
325 325
326 326 .. code-block:: nginx
327 327
328 328 ## define rc-cluster which contains a pool of our instances to connect to
329 329 upstream rc-cluster {
330 330 # rc-node-2/3 are stored in /etc/hosts with correct IP addresses
331 331 server rc-node-2:80;
332 332 server rc-node-3:80;
333 333 }
334 334
335 335 server {
336 336 listen 80;
337 337 server_name rc-node-1;
338 338
339 339 location / {
340 340 proxy_pass http://rc-cluster;
341 341 }
342 342 }
343 343
344 344
345 345 .. note::
346 346
347 347 You should configure your load balancing accordingly. We recommend writing
348 348 load balancing rules that will separate regular user traffic from
349 349 automated process traffic like continuous servers or build bots. Sticky sessions
350 350 are not required.
351 351
352 352
353 353 Show which instance handles a request
354 354 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
355 355
356 356 You can easily check if load-balancing is working as expected. Visit our main node
357 357 `rc-node-1` URL which at that point should already handle incoming requests and balance
358 358 it across node-2/3.
359 359
360 360 Add a special GET param `?showrcid=1` to show current instance handling your request.
361 361
362 362 For example: visiting url `http://rc-node-1/?showrcid=1` will show, in the bottom
363 363 of the screen` cluster instance info.
364 364 e.g: `RhodeCode instance id: rc-node-3-rc-node-3-3246`
365 365 which is generated from::
366 366
367 367 <NODE_HOSTNAME>-<INSTANCE_ID>-<WORKER_PID>
368 368
369 369
370 370 Using Celery with cluster
371 371 ^^^^^^^^^^^^^^^^^^^^^^^^^
372 372
373 373
374 374 If `Celery` is used we recommend setting also an instance of Enterprise/Community+VCSserver
375 on the node that is running `RabbitMQ`_. Those instances will be used to executed async
376 tasks on the `rc-node-1`. This is the most efficient setup. `Celery` usually
377 handles tasks such as sending emails, forking repositories, importing
375 on the node that is running `RabbitMQ`_ or `Redis`_. Those instances will be used to
376 executed async tasks on the `rc-node-1`. This is the most efficient setup.
377 `Celery` usually handles tasks such as sending emails, forking repositories, importing
378 378 repositories from external location etc. Using workers on instance that has
379 379 the direct access to disks used by NFS as well as email server gives noticeable
380 380 performance boost. Running local workers to the NFS storage results in faster
381 381 execution of forking large repositories or sending lots of emails.
382 382
383 383 Those instances need to be configured in the same way as for other nodes.
384 The instance in rc-node-1 can be added to the cluser, but we don't recommend doing it.
384 The instance in rc-node-1 can be added to the cluster, but we don't recommend doing it.
385 385 For best results let it be isolated to only executing `Celery` tasks in the cluster setup.
386 386
387 387
388 388 .. _Gunicorn: http://gunicorn.org/
389 389 .. _Whoosh: https://pypi.python.org/pypi/Whoosh/
390 390 .. _Elasticsearch: https://www.elastic.co/..
391 391 .. _RabbitMQ: http://www.rabbitmq.com/
392 392 .. _Nginx: http://nginx.io
393 393 .. _Apache: http://nginx.io
394 394 .. _Redis: http://redis.io
395 395
@@ -1,75 +1,85 b''
1 1
2 2 .. _config-celery:
3 3
4 4 Configure Celery
5 5 ----------------
6 6
7 7 Celery_ is an asynchronous task queue. It's a part of RhodeCode scheduler
8 8 functionality. Celery_ makes certain heavy tasks perform more efficiently.
9 9 Most important it allows sending notification emails, create repository forks,
10 10 and import repositories in async way. It is also used for bi-directional
11 11 repository sync in scheduler.
12 12
13 13 If you decide to use Celery you also need a working message queue.
14 The recommended and fully supported message broker is rabbitmq_.
14 There are two fully supported message brokers is rabbitmq_ and redis_ (recommended).
15
16 Since release 4.18.X we recommend using redis_ as a backend since it's generally
17 easier to work with, and results in simpler stack as redis is generally recommended
18 for caching purposes.
15 19
16 20
17 21 In order to install and configure Celery, follow these steps:
18 22
19 1. Install RabbitMQ, see the documentation on the Celery website for
20 `rabbitmq installation`_, or `rabbitmq website installation`_
23 1. Install RabbitMQ or Redis for a message queue, see the documentation on the Celery website for
24 `redis installation`_ or `rabbitmq installation`_
21 25
22 26
23 1a. As en example configuration after installation, you can run::
27 1a. If you choose RabbitMQ example configuration after installation would look like that::
24 28
25 29 sudo rabbitmqctl add_user rcuser secret_password
26 30 sudo rabbitmqctl add_vhost rhodevhost
27 31 sudo rabbitmqctl set_user_tags rcuser rhodecode
28 32 sudo rabbitmqctl set_permissions -p rhodevhost rcuser ".*" ".*" ".*"
29 33
30 34
31 35 2. Enable celery, and install `celery worker` process script using the `enable-module`::
32 36
33 37 rccontrol enable-module celery {instance-id}
34 38
35 39 .. note::
36 40
37 41 In case when using multiple instances in one or multiple servers it's highly
38 42 recommended that celery is running only once, for all servers connected to
39 43 the same database. Having multiple celery instances running without special
40 44 reconfiguration could cause scheduler issues.
41 45
42 46
43 47 3. Configure Celery in the
44 48 :file:`home/{user}/.rccontrol/{instance-id}/rhodecode.ini` file.
45 49 Set the broker_url as minimal settings required to enable operation.
46 50 If used our example data from pt 1a, here is how the broker url should look like::
47 51
52 # for Redis
53 celery.broker_url = redis://localhost:6379/8
54
55 # for RabbitMQ
48 56 celery.broker_url = amqp://rcuser:secret_password@localhost:5672/rhodevhost
49 57
50 58 Full configuration example is below:
51 59
52 60 .. code-block:: ini
53 61
54 62 # Set this section of the ini file to match your Celery installation
55 63 ####################################
56 64 ### CELERY CONFIG ####
57 65 ####################################
58 66
59 67 use_celery = true
60 celery.broker_url = amqp://rcuser:secret@localhost:5672/rhodevhost
68 celery.broker_url = redis://localhost:6379/8
61 69
62 70 # maximum tasks to execute before worker restart
63 71 celery.max_tasks_per_child = 100
64 72
65 73 ## tasks will never be sent to the queue, but executed locally instead.
66 74 celery.task_always_eager = false
67 75
68 76
69 77 .. _python: http://www.python.org/
70 78 .. _mercurial: http://mercurial.selenic.com/
71 79 .. _celery: http://celeryproject.org/
80 .. _redis: http://redis.io
81 .. _redis installation: https://redis.io/topics/quickstart
72 82 .. _rabbitmq: http://www.rabbitmq.com/
73 83 .. _rabbitmq installation: http://docs.celeryproject.org/en/latest/getting-started/brokers/rabbitmq.html
74 84 .. _rabbitmq website installation: http://www.rabbitmq.com/download.html
75 85 .. _Celery installation: http://docs.celeryproject.org/en/latest/getting-started/introduction.html#bundles
@@ -1,2334 +1,2378 b''
1 1 # Generated by pip2nix 0.8.0.dev1
2 2 # See https://github.com/johbo/pip2nix
3 3
4 4 { pkgs, fetchurl, fetchgit, fetchhg }:
5 5
6 6 self: super: {
7 7 "alembic" = super.buildPythonPackage {
8 8 name = "alembic-1.0.10";
9 9 doCheck = false;
10 10 propagatedBuildInputs = [
11 11 self."sqlalchemy"
12 12 self."mako"
13 13 self."python-editor"
14 14 self."python-dateutil"
15 15 ];
16 16 src = fetchurl {
17 17 url = "https://files.pythonhosted.org/packages/6e/8b/fa3bd058cccd5e9177fea4efa26bfb769228fdd3178436ad5e05830ef6ef/alembic-1.0.10.tar.gz";
18 18 sha256 = "1dwl0264r6ri2jyrjr68am04x538ab26xwy4crqjnnhm4alwm3c2";
19 19 };
20 20 meta = {
21 21 license = [ pkgs.lib.licenses.mit ];
22 22 };
23 23 };
24 24 "amqp" = super.buildPythonPackage {
25 name = "amqp-2.3.1";
25 name = "amqp-2.5.1";
26 26 doCheck = false;
27 27 propagatedBuildInputs = [
28 28 self."vine"
29 29 ];
30 30 src = fetchurl {
31 url = "https://files.pythonhosted.org/packages/1b/32/242ff76cd802766f11c89c72f3389b5c8de4bdfbab406137b90c5fae8b05/amqp-2.3.1.tar.gz";
32 sha256 = "0wlfnvhmfrn7c8qif2jyvsm63ibdxp02ss564qwrvqfhz0di72s0";
31 url = "https://files.pythonhosted.org/packages/b5/f5/70e364a1f5fbafc742c098ad88a064b801b0d69cf56bfad13be2c08be4e2/amqp-2.5.1.tar.gz";
32 sha256 = "0s2yxnnhhx9hww0n33yn22q6sgnbd6n2nw92050qv2qpc3i1ga8r";
33 33 };
34 34 meta = {
35 35 license = [ pkgs.lib.licenses.bsdOriginal ];
36 36 };
37 37 };
38 38 "appenlight-client" = super.buildPythonPackage {
39 39 name = "appenlight-client-0.6.26";
40 40 doCheck = false;
41 41 propagatedBuildInputs = [
42 42 self."webob"
43 43 self."requests"
44 44 self."six"
45 45 ];
46 46 src = fetchurl {
47 47 url = "https://files.pythonhosted.org/packages/2e/56/418fc10379b96e795ee39a15e69a730c222818af04c3821fa354eaa859ec/appenlight_client-0.6.26.tar.gz";
48 48 sha256 = "0s9xw3sb8s3pk73k78nnq4jil3q4mk6bczfa1fmgfx61kdxl2712";
49 49 };
50 50 meta = {
51 51 license = [ pkgs.lib.licenses.bsdOriginal ];
52 52 };
53 53 };
54 54 "asn1crypto" = super.buildPythonPackage {
55 55 name = "asn1crypto-0.24.0";
56 56 doCheck = false;
57 57 src = fetchurl {
58 58 url = "https://files.pythonhosted.org/packages/fc/f1/8db7daa71f414ddabfa056c4ef792e1461ff655c2ae2928a2b675bfed6b4/asn1crypto-0.24.0.tar.gz";
59 59 sha256 = "0jaf8rf9dx1lf23xfv2cdd5h52f1qr3w8k63985bc35g3d220p4x";
60 60 };
61 61 meta = {
62 62 license = [ pkgs.lib.licenses.mit ];
63 63 };
64 64 };
65 65 "atomicwrites" = super.buildPythonPackage {
66 66 name = "atomicwrites-1.2.1";
67 67 doCheck = false;
68 68 src = fetchurl {
69 69 url = "https://files.pythonhosted.org/packages/ac/ed/a311712ef6b4355035489f665e63e1a73f9eb371929e3c98e5efd451069e/atomicwrites-1.2.1.tar.gz";
70 70 sha256 = "1vmkbw9j0qammwxbxycrs39gvdg4lc2d4lk98kwf8ag2manyi6pc";
71 71 };
72 72 meta = {
73 73 license = [ pkgs.lib.licenses.mit ];
74 74 };
75 75 };
76 76 "attrs" = super.buildPythonPackage {
77 77 name = "attrs-18.2.0";
78 78 doCheck = false;
79 79 src = fetchurl {
80 80 url = "https://files.pythonhosted.org/packages/0f/9e/26b1d194aab960063b266170e53c39f73ea0d0d3f5ce23313e0ec8ee9bdf/attrs-18.2.0.tar.gz";
81 81 sha256 = "0s9ydh058wmmf5v391pym877x4ahxg45dw6a0w4c7s5wgpigdjqh";
82 82 };
83 83 meta = {
84 84 license = [ pkgs.lib.licenses.mit ];
85 85 };
86 86 };
87 87 "babel" = super.buildPythonPackage {
88 88 name = "babel-1.3";
89 89 doCheck = false;
90 90 propagatedBuildInputs = [
91 91 self."pytz"
92 92 ];
93 93 src = fetchurl {
94 94 url = "https://files.pythonhosted.org/packages/33/27/e3978243a03a76398c384c83f7ca879bc6e8f1511233a621fcada135606e/Babel-1.3.tar.gz";
95 95 sha256 = "0bnin777lc53nxd1hp3apq410jj5wx92n08h7h4izpl4f4sx00lz";
96 96 };
97 97 meta = {
98 98 license = [ pkgs.lib.licenses.bsdOriginal ];
99 99 };
100 100 };
101 101 "backports.shutil-get-terminal-size" = super.buildPythonPackage {
102 102 name = "backports.shutil-get-terminal-size-1.0.0";
103 103 doCheck = false;
104 104 src = fetchurl {
105 105 url = "https://files.pythonhosted.org/packages/ec/9c/368086faa9c016efce5da3e0e13ba392c9db79e3ab740b763fe28620b18b/backports.shutil_get_terminal_size-1.0.0.tar.gz";
106 106 sha256 = "107cmn7g3jnbkp826zlj8rrj19fam301qvaqf0f3905f5217lgki";
107 107 };
108 108 meta = {
109 109 license = [ pkgs.lib.licenses.mit ];
110 110 };
111 111 };
112 112 "beaker" = super.buildPythonPackage {
113 113 name = "beaker-1.9.1";
114 114 doCheck = false;
115 115 propagatedBuildInputs = [
116 116 self."funcsigs"
117 117 ];
118 118 src = fetchurl {
119 119 url = "https://files.pythonhosted.org/packages/ca/14/a626188d0d0c7b55dd7cf1902046c2743bd392a7078bb53073e13280eb1e/Beaker-1.9.1.tar.gz";
120 120 sha256 = "08arsn61r255lhz6hcpn2lsiqpg30clla805ysx06wmbhvb6w9rj";
121 121 };
122 122 meta = {
123 123 license = [ pkgs.lib.licenses.bsdOriginal ];
124 124 };
125 125 };
126 126 "beautifulsoup4" = super.buildPythonPackage {
127 127 name = "beautifulsoup4-4.6.3";
128 128 doCheck = false;
129 129 src = fetchurl {
130 130 url = "https://files.pythonhosted.org/packages/88/df/86bffad6309f74f3ff85ea69344a078fc30003270c8df6894fca7a3c72ff/beautifulsoup4-4.6.3.tar.gz";
131 131 sha256 = "041dhalzjciw6qyzzq7a2k4h1yvyk76xigp35hv5ibnn448ydy4h";
132 132 };
133 133 meta = {
134 134 license = [ pkgs.lib.licenses.mit ];
135 135 };
136 136 };
137 137 "billiard" = super.buildPythonPackage {
138 name = "billiard-3.5.0.3";
138 name = "billiard-3.6.1.0";
139 139 doCheck = false;
140 140 src = fetchurl {
141 url = "https://files.pythonhosted.org/packages/39/ac/f5571210cca2e4f4532e38aaff242f26c8654c5e2436bee966c230647ccc/billiard-3.5.0.3.tar.gz";
142 sha256 = "1riwiiwgb141151md4ykx49qrz749akj5k8g290ji9bsqjyj4yqx";
141 url = "https://files.pythonhosted.org/packages/68/1d/2aea8fbb0b1e1260a8a2e77352de2983d36d7ac01207cf14c2b9c6cc860e/billiard-3.6.1.0.tar.gz";
142 sha256 = "09hzy3aqi7visy4vmf4xiish61n0rq5nd3iwjydydps8yrs9r05q";
143 143 };
144 144 meta = {
145 145 license = [ pkgs.lib.licenses.bsdOriginal ];
146 146 };
147 147 };
148 148 "bleach" = super.buildPythonPackage {
149 149 name = "bleach-3.1.0";
150 150 doCheck = false;
151 151 propagatedBuildInputs = [
152 152 self."six"
153 153 self."webencodings"
154 154 ];
155 155 src = fetchurl {
156 156 url = "https://files.pythonhosted.org/packages/78/5a/0df03e8735cd9c75167528299c738702437589b9c71a849489d00ffa82e8/bleach-3.1.0.tar.gz";
157 157 sha256 = "1yhrgrhkln8bd6gn3imj69g1h4xqah9gaz9q26crqr6gmmvpzprz";
158 158 };
159 159 meta = {
160 160 license = [ pkgs.lib.licenses.asl20 ];
161 161 };
162 162 };
163 163 "bumpversion" = super.buildPythonPackage {
164 164 name = "bumpversion-0.5.3";
165 165 doCheck = false;
166 166 src = fetchurl {
167 167 url = "https://files.pythonhosted.org/packages/14/41/8c9da3549f8e00c84f0432c3a8cf8ed6898374714676aab91501d48760db/bumpversion-0.5.3.tar.gz";
168 168 sha256 = "0zn7694yfipxg35ikkfh7kvgl2fissha3dnqad2c5bvsvmrwhi37";
169 169 };
170 170 meta = {
171 171 license = [ pkgs.lib.licenses.mit ];
172 172 };
173 173 };
174 174 "celery" = super.buildPythonPackage {
175 name = "celery-4.1.1";
175 name = "celery-4.3.0";
176 176 doCheck = false;
177 177 propagatedBuildInputs = [
178 178 self."pytz"
179 179 self."billiard"
180 180 self."kombu"
181 self."vine"
181 182 ];
182 183 src = fetchurl {
183 url = "https://files.pythonhosted.org/packages/e9/cf/a4c0597effca20c57eb586324e41d1180bc8f13a933da41e0646cff69f02/celery-4.1.1.tar.gz";
184 sha256 = "1xbir4vw42n2ir9lanhwl7w69zpmj7lbi66fxm2b7pyvkcss7wni";
184 url = "https://files.pythonhosted.org/packages/a2/4b/d020836f751617e907e84753a41c92231cd4b673ff991b8ee9da52361323/celery-4.3.0.tar.gz";
185 sha256 = "1y8y0gbgkwimpxqnxq2rm5qz2vy01fvjiybnpm00y5rzd2m34iac";
185 186 };
186 187 meta = {
187 188 license = [ pkgs.lib.licenses.bsdOriginal ];
188 189 };
189 190 };
190 191 "cffi" = super.buildPythonPackage {
191 192 name = "cffi-1.12.2";
192 193 doCheck = false;
193 194 propagatedBuildInputs = [
194 195 self."pycparser"
195 196 ];
196 197 src = fetchurl {
197 198 url = "https://files.pythonhosted.org/packages/64/7c/27367b38e6cc3e1f49f193deb761fe75cda9f95da37b67b422e62281fcac/cffi-1.12.2.tar.gz";
198 199 sha256 = "19qfks2djya8vix95bmg3xzipjb8w9b8mbj4j5k2hqkc8j58f4z1";
199 200 };
200 201 meta = {
201 202 license = [ pkgs.lib.licenses.mit ];
202 203 };
203 204 };
204 205 "chameleon" = super.buildPythonPackage {
205 206 name = "chameleon-2.24";
206 207 doCheck = false;
207 208 src = fetchurl {
208 209 url = "https://files.pythonhosted.org/packages/5a/9e/637379ffa13c5172b5c0e704833ffea6bf51cec7567f93fd6e903d53ed74/Chameleon-2.24.tar.gz";
209 210 sha256 = "0ykqr7syxfa6h9adjfnsv1gdsca2xzm22vmic8859n0f0j09abj5";
210 211 };
211 212 meta = {
212 213 license = [ { fullName = "BSD-like (http://repoze.org/license.html)"; } ];
213 214 };
214 215 };
215 216 "channelstream" = super.buildPythonPackage {
216 217 name = "channelstream-0.5.2";
217 218 doCheck = false;
218 219 propagatedBuildInputs = [
219 220 self."gevent"
220 221 self."ws4py"
221 222 self."pyramid"
222 223 self."pyramid-jinja2"
223 224 self."itsdangerous"
224 225 self."requests"
225 226 self."six"
226 227 ];
227 228 src = fetchurl {
228 229 url = "https://files.pythonhosted.org/packages/2b/31/29a8e085cf5bf97fa88e7b947adabfc581a18a3463adf77fb6dada34a65f/channelstream-0.5.2.tar.gz";
229 230 sha256 = "1qbm4xdl5hfkja683x546bncg3rqq8qv79w1m1a1wd48cqqzb6rm";
230 231 };
231 232 meta = {
232 233 license = [ pkgs.lib.licenses.bsdOriginal ];
233 234 };
234 235 };
235 236 "click" = super.buildPythonPackage {
236 237 name = "click-7.0";
237 238 doCheck = false;
238 239 src = fetchurl {
239 240 url = "https://files.pythonhosted.org/packages/f8/5c/f60e9d8a1e77005f664b76ff8aeaee5bc05d0a91798afd7f53fc998dbc47/Click-7.0.tar.gz";
240 241 sha256 = "1mzjixd4vjbjvzb6vylki9w1556a9qmdh35kzmq6cign46av952v";
241 242 };
242 243 meta = {
243 244 license = [ pkgs.lib.licenses.bsdOriginal ];
244 245 };
245 246 };
246 247 "colander" = super.buildPythonPackage {
247 248 name = "colander-1.7.0";
248 249 doCheck = false;
249 250 propagatedBuildInputs = [
250 251 self."translationstring"
251 252 self."iso8601"
252 253 self."enum34"
253 254 ];
254 255 src = fetchurl {
255 256 url = "https://files.pythonhosted.org/packages/db/e4/74ab06f54211917b41865cafc987ce511e35503de48da9bfe9358a1bdc3e/colander-1.7.0.tar.gz";
256 257 sha256 = "1wl1bqab307lbbcjx81i28s3yl6dlm4rf15fxawkjb6j48x1cn6p";
257 258 };
258 259 meta = {
259 260 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
260 261 };
261 262 };
262 263 "configobj" = super.buildPythonPackage {
263 264 name = "configobj-5.0.6";
264 265 doCheck = false;
265 266 propagatedBuildInputs = [
266 267 self."six"
267 268 ];
268 269 src = fetchurl {
269 270 url = "https://code.rhodecode.com/upstream/configobj/artifacts/download/0-012de99a-b1e1-4f64-a5c0-07a98a41b324.tar.gz?md5=6a513f51fe04b2c18cf84c1395a7c626";
270 271 sha256 = "0kqfrdfr14mw8yd8qwq14dv2xghpkjmd3yjsy8dfcbvpcc17xnxp";
271 272 };
272 273 meta = {
273 274 license = [ pkgs.lib.licenses.bsdOriginal ];
274 275 };
275 276 };
276 277 "configparser" = super.buildPythonPackage {
277 278 name = "configparser-3.7.4";
278 279 doCheck = false;
279 280 src = fetchurl {
280 281 url = "https://files.pythonhosted.org/packages/e2/1c/83fd53748d8245cb9a3399f705c251d3fc0ce7df04450aac1cfc49dd6a0f/configparser-3.7.4.tar.gz";
281 282 sha256 = "0xac32886ihs2xg7w1gppcq2sgin5qsm8lqwijs5xifq9w0x0q6s";
282 283 };
283 284 meta = {
284 285 license = [ pkgs.lib.licenses.mit ];
285 286 };
286 287 };
288 "contextlib2" = super.buildPythonPackage {
289 name = "contextlib2-0.5.5";
290 doCheck = false;
291 src = fetchurl {
292 url = "https://files.pythonhosted.org/packages/6e/db/41233498c210b03ab8b072c8ee49b1cd63b3b0c76f8ea0a0e5d02df06898/contextlib2-0.5.5.tar.gz";
293 sha256 = "0j6ad6lwwyc9kv71skj098v5l7x5biyj2hs4lc5x1kcixqcr97sh";
294 };
295 meta = {
296 license = [ pkgs.lib.licenses.psfl ];
297 };
298 };
287 299 "cov-core" = super.buildPythonPackage {
288 300 name = "cov-core-1.15.0";
289 301 doCheck = false;
290 302 propagatedBuildInputs = [
291 303 self."coverage"
292 304 ];
293 305 src = fetchurl {
294 306 url = "https://files.pythonhosted.org/packages/4b/87/13e75a47b4ba1be06f29f6d807ca99638bedc6b57fa491cd3de891ca2923/cov-core-1.15.0.tar.gz";
295 307 sha256 = "0k3np9ymh06yv1ib96sb6wfsxjkqhmik8qfsn119vnhga9ywc52a";
296 308 };
297 309 meta = {
298 310 license = [ pkgs.lib.licenses.mit ];
299 311 };
300 312 };
301 313 "coverage" = super.buildPythonPackage {
302 314 name = "coverage-4.5.3";
303 315 doCheck = false;
304 316 src = fetchurl {
305 317 url = "https://files.pythonhosted.org/packages/82/70/2280b5b29a0352519bb95ab0ef1ea942d40466ca71c53a2085bdeff7b0eb/coverage-4.5.3.tar.gz";
306 318 sha256 = "02f6m073qdispn96rc616hg0rnmw1pgqzw3bgxwiwza4zf9hirlx";
307 319 };
308 320 meta = {
309 321 license = [ pkgs.lib.licenses.asl20 ];
310 322 };
311 323 };
312 324 "cryptography" = super.buildPythonPackage {
313 325 name = "cryptography-2.6.1";
314 326 doCheck = false;
315 327 propagatedBuildInputs = [
316 328 self."asn1crypto"
317 329 self."six"
318 330 self."cffi"
319 331 self."enum34"
320 332 self."ipaddress"
321 333 ];
322 334 src = fetchurl {
323 335 url = "https://files.pythonhosted.org/packages/07/ca/bc827c5e55918ad223d59d299fff92f3563476c3b00d0a9157d9c0217449/cryptography-2.6.1.tar.gz";
324 336 sha256 = "19iwz5avym5zl6jrrrkym1rdaa9h61j20ph4cswsqgv8xg5j3j16";
325 337 };
326 338 meta = {
327 339 license = [ pkgs.lib.licenses.bsdOriginal { fullName = "BSD or Apache License, Version 2.0"; } pkgs.lib.licenses.asl20 ];
328 340 };
329 341 };
330 342 "cssselect" = super.buildPythonPackage {
331 343 name = "cssselect-1.0.3";
332 344 doCheck = false;
333 345 src = fetchurl {
334 346 url = "https://files.pythonhosted.org/packages/52/ea/f31e1d2e9eb130fda2a631e22eac369dc644e8807345fbed5113f2d6f92b/cssselect-1.0.3.tar.gz";
335 347 sha256 = "011jqa2jhmydhi0iz4v1w3cr540z5zas8g2bw8brdw4s4b2qnv86";
336 348 };
337 349 meta = {
338 350 license = [ pkgs.lib.licenses.bsdOriginal ];
339 351 };
340 352 };
341 353 "decorator" = super.buildPythonPackage {
342 354 name = "decorator-4.1.2";
343 355 doCheck = false;
344 356 src = fetchurl {
345 357 url = "https://files.pythonhosted.org/packages/bb/e0/f6e41e9091e130bf16d4437dabbac3993908e4d6485ecbc985ef1352db94/decorator-4.1.2.tar.gz";
346 358 sha256 = "1d8npb11kxyi36mrvjdpcjij76l5zfyrz2f820brf0l0rcw4vdkw";
347 359 };
348 360 meta = {
349 361 license = [ pkgs.lib.licenses.bsdOriginal { fullName = "new BSD License"; } ];
350 362 };
351 363 };
352 364 "deform" = super.buildPythonPackage {
353 365 name = "deform-2.0.7";
354 366 doCheck = false;
355 367 propagatedBuildInputs = [
356 368 self."chameleon"
357 369 self."colander"
358 370 self."iso8601"
359 371 self."peppercorn"
360 372 self."translationstring"
361 373 self."zope.deprecation"
362 374 ];
363 375 src = fetchurl {
364 376 url = "https://files.pythonhosted.org/packages/cf/a1/bc234527b8f181de9acd80e796483c00007658d1e32b7de78f1c2e004d9a/deform-2.0.7.tar.gz";
365 377 sha256 = "0jnpi0zr2hjvbmiz6nm33yqv976dn9lf51vhlzqc0i75xcr9rwig";
366 378 };
367 379 meta = {
368 380 license = [ { fullName = "Repoze Public License"; } { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
369 381 };
370 382 };
371 383 "defusedxml" = super.buildPythonPackage {
372 384 name = "defusedxml-0.6.0";
373 385 doCheck = false;
374 386 src = fetchurl {
375 387 url = "https://files.pythonhosted.org/packages/a4/5f/f8aa58ca0cf01cbcee728abc9d88bfeb74e95e6cb4334cfd5bed5673ea77/defusedxml-0.6.0.tar.gz";
376 388 sha256 = "1xbp8fivl3wlbyg2jrvs4lalaqv1xp9a9f29p75wdx2s2d6h717n";
377 389 };
378 390 meta = {
379 391 license = [ pkgs.lib.licenses.psfl ];
380 392 };
381 393 };
382 394 "dm.xmlsec.binding" = super.buildPythonPackage {
383 395 name = "dm.xmlsec.binding-1.3.7";
384 396 doCheck = false;
385 397 propagatedBuildInputs = [
386 398 self."setuptools"
387 399 self."lxml"
388 400 ];
389 401 src = fetchurl {
390 402 url = "https://files.pythonhosted.org/packages/2c/9e/7651982d50252692991acdae614af821fd6c79bc8dcd598ad71d55be8fc7/dm.xmlsec.binding-1.3.7.tar.gz";
391 403 sha256 = "03jjjscx1pz2nc0dwiw9nia02qbz1c6f0f9zkyr8fmvys2n5jkb3";
392 404 };
393 405 meta = {
394 406 license = [ pkgs.lib.licenses.bsdOriginal ];
395 407 };
396 408 };
397 409 "docutils" = super.buildPythonPackage {
398 410 name = "docutils-0.14";
399 411 doCheck = false;
400 412 src = fetchurl {
401 413 url = "https://files.pythonhosted.org/packages/84/f4/5771e41fdf52aabebbadecc9381d11dea0fa34e4759b4071244fa094804c/docutils-0.14.tar.gz";
402 414 sha256 = "0x22fs3pdmr42kvz6c654756wja305qv6cx1zbhwlagvxgr4xrji";
403 415 };
404 416 meta = {
405 417 license = [ pkgs.lib.licenses.bsdOriginal pkgs.lib.licenses.publicDomain pkgs.lib.licenses.gpl1 { fullName = "public domain, Python, 2-Clause BSD, GPL 3 (see COPYING.txt)"; } pkgs.lib.licenses.psfl ];
406 418 };
407 419 };
408 420 "dogpile.cache" = super.buildPythonPackage {
409 421 name = "dogpile.cache-0.7.1";
410 422 doCheck = false;
411 423 propagatedBuildInputs = [
412 424 self."decorator"
413 425 ];
414 426 src = fetchurl {
415 427 url = "https://files.pythonhosted.org/packages/84/3e/dbf1cfc5228f1d3dca80ef714db2c5aaec5cd9efaf54d7e3daef6bc48b19/dogpile.cache-0.7.1.tar.gz";
416 428 sha256 = "0caazmrzhnfqb5yrp8myhw61ny637jj69wcngrpbvi31jlcpy6v9";
417 429 };
418 430 meta = {
419 431 license = [ pkgs.lib.licenses.bsdOriginal ];
420 432 };
421 433 };
422 434 "dogpile.core" = super.buildPythonPackage {
423 435 name = "dogpile.core-0.4.1";
424 436 doCheck = false;
425 437 src = fetchurl {
426 438 url = "https://files.pythonhosted.org/packages/0e/77/e72abc04c22aedf874301861e5c1e761231c288b5de369c18be8f4b5c9bb/dogpile.core-0.4.1.tar.gz";
427 439 sha256 = "0xpdvg4kr1isfkrh1rfsh7za4q5a5s6l2kf9wpvndbwf3aqjyrdy";
428 440 };
429 441 meta = {
430 442 license = [ pkgs.lib.licenses.bsdOriginal ];
431 443 };
432 444 };
433 445 "ecdsa" = super.buildPythonPackage {
434 446 name = "ecdsa-0.13.2";
435 447 doCheck = false;
436 448 src = fetchurl {
437 449 url = "https://files.pythonhosted.org/packages/51/76/139bf6e9b7b6684d5891212cdbd9e0739f2bfc03f380a1a6ffa700f392ac/ecdsa-0.13.2.tar.gz";
438 450 sha256 = "116qaq7bh4lcynzi613960jhsnn19v0kmsqwahiwjfj14gx4y0sw";
439 451 };
440 452 meta = {
441 453 license = [ pkgs.lib.licenses.mit ];
442 454 };
443 455 };
444 456 "elasticsearch" = super.buildPythonPackage {
445 457 name = "elasticsearch-6.3.1";
446 458 doCheck = false;
447 459 propagatedBuildInputs = [
448 460 self."urllib3"
449 461 ];
450 462 src = fetchurl {
451 463 url = "https://files.pythonhosted.org/packages/9d/ce/c4664e8380e379a9402ecfbaf158e56396da90d520daba21cfa840e0eb71/elasticsearch-6.3.1.tar.gz";
452 464 sha256 = "12y93v0yn7a4xmf969239g8gb3l4cdkclfpbk1qc8hx5qkymrnma";
453 465 };
454 466 meta = {
455 467 license = [ pkgs.lib.licenses.asl20 ];
456 468 };
457 469 };
458 470 "elasticsearch-dsl" = super.buildPythonPackage {
459 471 name = "elasticsearch-dsl-6.3.1";
460 472 doCheck = false;
461 473 propagatedBuildInputs = [
462 474 self."six"
463 475 self."python-dateutil"
464 476 self."elasticsearch"
465 477 self."ipaddress"
466 478 ];
467 479 src = fetchurl {
468 480 url = "https://files.pythonhosted.org/packages/4c/0d/1549f50c591db6bb4e66cbcc8d34a6e537c3d89aa426b167c244fd46420a/elasticsearch-dsl-6.3.1.tar.gz";
469 481 sha256 = "1gh8a0shqi105k325hgwb9avrpdjh0mc6mxwfg9ba7g6lssb702z";
470 482 };
471 483 meta = {
472 484 license = [ pkgs.lib.licenses.asl20 ];
473 485 };
474 486 };
475 487 "elasticsearch1" = super.buildPythonPackage {
476 488 name = "elasticsearch1-1.10.0";
477 489 doCheck = false;
478 490 propagatedBuildInputs = [
479 491 self."urllib3"
480 492 ];
481 493 src = fetchurl {
482 494 url = "https://files.pythonhosted.org/packages/a6/eb/73e75f9681fa71e3157b8ee878534235d57f24ee64f0e77f8d995fb57076/elasticsearch1-1.10.0.tar.gz";
483 495 sha256 = "0g89444kd5zwql4vbvyrmi2m6l6dcj6ga98j4hqxyyyz6z20aki2";
484 496 };
485 497 meta = {
486 498 license = [ pkgs.lib.licenses.asl20 ];
487 499 };
488 500 };
489 501 "elasticsearch1-dsl" = super.buildPythonPackage {
490 502 name = "elasticsearch1-dsl-0.0.12";
491 503 doCheck = false;
492 504 propagatedBuildInputs = [
493 505 self."six"
494 506 self."python-dateutil"
495 507 self."elasticsearch1"
496 508 ];
497 509 src = fetchurl {
498 510 url = "https://files.pythonhosted.org/packages/eb/9d/785342775cb10eddc9b8d7457d618a423b4f0b89d8b2b2d1bc27190d71db/elasticsearch1-dsl-0.0.12.tar.gz";
499 511 sha256 = "0ig1ly39v93hba0z975wnhbmzwj28w6w1sqlr2g7cn5spp732bhk";
500 512 };
501 513 meta = {
502 514 license = [ pkgs.lib.licenses.asl20 ];
503 515 };
504 516 };
505 517 "elasticsearch2" = super.buildPythonPackage {
506 518 name = "elasticsearch2-2.5.0";
507 519 doCheck = false;
508 520 propagatedBuildInputs = [
509 521 self."urllib3"
510 522 ];
511 523 src = fetchurl {
512 524 url = "https://files.pythonhosted.org/packages/84/77/63cf63d4ba11d913b5278406f2a37b0712bec6fc85edfb6151a33eaeba25/elasticsearch2-2.5.0.tar.gz";
513 525 sha256 = "0ky0q16lbvz022yv6q3pix7aamf026p1y994537ccjf0p0dxnbxr";
514 526 };
515 527 meta = {
516 528 license = [ pkgs.lib.licenses.asl20 ];
517 529 };
518 530 };
519 531 "entrypoints" = super.buildPythonPackage {
520 532 name = "entrypoints-0.2.2";
521 533 doCheck = false;
522 534 propagatedBuildInputs = [
523 535 self."configparser"
524 536 ];
525 537 src = fetchurl {
526 538 url = "https://code.rhodecode.com/upstream/entrypoints/artifacts/download/0-8e9ee9e4-c4db-409c-b07e-81568fd1832d.tar.gz?md5=3a027b8ff1d257b91fe257de6c43357d";
527 539 sha256 = "0qih72n2myclanplqipqxpgpj9d2yhff1pz5d02zq1cfqyd173w5";
528 540 };
529 541 meta = {
530 542 license = [ pkgs.lib.licenses.mit ];
531 543 };
532 544 };
533 545 "enum34" = super.buildPythonPackage {
534 546 name = "enum34-1.1.6";
535 547 doCheck = false;
536 548 src = fetchurl {
537 549 url = "https://files.pythonhosted.org/packages/bf/3e/31d502c25302814a7c2f1d3959d2a3b3f78e509002ba91aea64993936876/enum34-1.1.6.tar.gz";
538 550 sha256 = "1cgm5ng2gcfrkrm3hc22brl6chdmv67b9zvva9sfs7gn7dwc9n4a";
539 551 };
540 552 meta = {
541 553 license = [ pkgs.lib.licenses.bsdOriginal ];
542 554 };
543 555 };
544 556 "formencode" = super.buildPythonPackage {
545 557 name = "formencode-1.2.4";
546 558 doCheck = false;
547 559 src = fetchurl {
548 560 url = "https://files.pythonhosted.org/packages/8e/59/0174271a6f004512e0201188593e6d319db139d14cb7490e488bbb078015/FormEncode-1.2.4.tar.gz";
549 561 sha256 = "1fgy04sdy4yry5xcjls3x3xy30dqwj58ycnkndim819jx0788w42";
550 562 };
551 563 meta = {
552 564 license = [ pkgs.lib.licenses.psfl ];
553 565 };
554 566 };
555 567 "funcsigs" = super.buildPythonPackage {
556 568 name = "funcsigs-1.0.2";
557 569 doCheck = false;
558 570 src = fetchurl {
559 571 url = "https://files.pythonhosted.org/packages/94/4a/db842e7a0545de1cdb0439bb80e6e42dfe82aaeaadd4072f2263a4fbed23/funcsigs-1.0.2.tar.gz";
560 572 sha256 = "0l4g5818ffyfmfs1a924811azhjj8ax9xd1cffr1mzd3ycn0zfx7";
561 573 };
562 574 meta = {
563 575 license = [ { fullName = "ASL"; } pkgs.lib.licenses.asl20 ];
564 576 };
565 577 };
566 578 "functools32" = super.buildPythonPackage {
567 579 name = "functools32-3.2.3.post2";
568 580 doCheck = false;
569 581 src = fetchurl {
570 582 url = "https://files.pythonhosted.org/packages/c5/60/6ac26ad05857c601308d8fb9e87fa36d0ebf889423f47c3502ef034365db/functools32-3.2.3-2.tar.gz";
571 583 sha256 = "0v8ya0b58x47wp216n1zamimv4iw57cxz3xxhzix52jkw3xks9gn";
572 584 };
573 585 meta = {
574 586 license = [ pkgs.lib.licenses.psfl ];
575 587 };
576 588 };
577 589 "future" = super.buildPythonPackage {
578 590 name = "future-0.14.3";
579 591 doCheck = false;
580 592 src = fetchurl {
581 593 url = "https://files.pythonhosted.org/packages/83/80/8ef3a11a15f8eaafafa0937b20c1b3f73527e69ab6b3fa1cf94a5a96aabb/future-0.14.3.tar.gz";
582 594 sha256 = "1savk7jx7hal032f522c5ajhh8fra6gmnadrj9adv5qxi18pv1b2";
583 595 };
584 596 meta = {
585 597 license = [ { fullName = "OSI Approved"; } pkgs.lib.licenses.mit ];
586 598 };
587 599 };
588 600 "futures" = super.buildPythonPackage {
589 601 name = "futures-3.0.2";
590 602 doCheck = false;
591 603 src = fetchurl {
592 604 url = "https://files.pythonhosted.org/packages/f8/e7/fc0fcbeb9193ba2d4de00b065e7fd5aecd0679e93ce95a07322b2b1434f4/futures-3.0.2.tar.gz";
593 605 sha256 = "0mz2pbgxbc2nbib1szifi07whjbfs4r02pv2z390z7p410awjgyw";
594 606 };
595 607 meta = {
596 608 license = [ pkgs.lib.licenses.bsdOriginal ];
597 609 };
598 610 };
599 611 "gevent" = super.buildPythonPackage {
600 612 name = "gevent-1.4.0";
601 613 doCheck = false;
602 614 propagatedBuildInputs = [
603 615 self."greenlet"
604 616 ];
605 617 src = fetchurl {
606 618 url = "https://files.pythonhosted.org/packages/ed/27/6c49b70808f569b66ec7fac2e78f076e9b204db9cf5768740cff3d5a07ae/gevent-1.4.0.tar.gz";
607 619 sha256 = "1lchr4akw2jkm5v4kz7bdm4wv3knkfhbfn9vkkz4s5yrkcxzmdqy";
608 620 };
609 621 meta = {
610 622 license = [ pkgs.lib.licenses.mit ];
611 623 };
612 624 };
613 625 "gnureadline" = super.buildPythonPackage {
614 626 name = "gnureadline-6.3.8";
615 627 doCheck = false;
616 628 src = fetchurl {
617 629 url = "https://files.pythonhosted.org/packages/50/64/86085c823cd78f9df9d8e33dce0baa71618016f8860460b82cf6610e1eb3/gnureadline-6.3.8.tar.gz";
618 630 sha256 = "0ddhj98x2nv45iz4aadk4b9m0b1kpsn1xhcbypn5cd556knhiqjq";
619 631 };
620 632 meta = {
621 633 license = [ { fullName = "GNU General Public License v3 (GPLv3)"; } pkgs.lib.licenses.gpl1 ];
622 634 };
623 635 };
624 636 "gprof2dot" = super.buildPythonPackage {
625 637 name = "gprof2dot-2017.9.19";
626 638 doCheck = false;
627 639 src = fetchurl {
628 640 url = "https://files.pythonhosted.org/packages/9d/36/f977122502979f3dfb50704979c9ed70e6b620787942b089bf1af15f5aba/gprof2dot-2017.9.19.tar.gz";
629 641 sha256 = "17ih23ld2nzgc3xwgbay911l6lh96jp1zshmskm17n1gg2i7mg6f";
630 642 };
631 643 meta = {
632 644 license = [ { fullName = "GNU Lesser General Public License v3 or later (LGPLv3+)"; } { fullName = "LGPL"; } ];
633 645 };
634 646 };
635 647 "greenlet" = super.buildPythonPackage {
636 648 name = "greenlet-0.4.15";
637 649 doCheck = false;
638 650 src = fetchurl {
639 651 url = "https://files.pythonhosted.org/packages/f8/e8/b30ae23b45f69aa3f024b46064c0ac8e5fcb4f22ace0dca8d6f9c8bbe5e7/greenlet-0.4.15.tar.gz";
640 652 sha256 = "1g4g1wwc472ds89zmqlpyan3fbnzpa8qm48z3z1y6mlk44z485ll";
641 653 };
642 654 meta = {
643 655 license = [ pkgs.lib.licenses.mit ];
644 656 };
645 657 };
646 658 "gunicorn" = super.buildPythonPackage {
647 659 name = "gunicorn-19.9.0";
648 660 doCheck = false;
649 661 src = fetchurl {
650 662 url = "https://files.pythonhosted.org/packages/47/52/68ba8e5e8ba251e54006a49441f7ccabca83b6bef5aedacb4890596c7911/gunicorn-19.9.0.tar.gz";
651 663 sha256 = "1wzlf4xmn6qjirh5w81l6i6kqjnab1n1qqkh7zsj1yb6gh4n49ps";
652 664 };
653 665 meta = {
654 666 license = [ pkgs.lib.licenses.mit ];
655 667 };
656 668 };
657 669 "hupper" = super.buildPythonPackage {
658 670 name = "hupper-1.6.1";
659 671 doCheck = false;
660 672 src = fetchurl {
661 673 url = "https://files.pythonhosted.org/packages/85/d9/e005d357b11249c5d70ddf5b7adab2e4c0da4e8b0531ff146917a04fe6c0/hupper-1.6.1.tar.gz";
662 674 sha256 = "0d3cvkc8ssgwk54wvhbifj56ry97qi10pfzwfk8vwzzcikbfp3zy";
663 675 };
664 676 meta = {
665 677 license = [ pkgs.lib.licenses.mit ];
666 678 };
667 679 };
680 "importlib-metadata" = super.buildPythonPackage {
681 name = "importlib-metadata-0.20";
682 doCheck = false;
683 propagatedBuildInputs = [
684 self."zipp"
685 self."contextlib2"
686 self."configparser"
687 self."pathlib2"
688 ];
689 src = fetchurl {
690 url = "https://files.pythonhosted.org/packages/05/41/7d339dd7b507e97f67be812fdf29c4ad991ddd34b1ed0f3c54e8f1c4e0b3/importlib_metadata-0.20.tar.gz";
691 sha256 = "13bshj8i98l9gxi6df4xbw1262phmawgr527as20brblwf93a55p";
692 };
693 meta = {
694 license = [ pkgs.lib.licenses.asl20 ];
695 };
696 };
668 697 "infrae.cache" = super.buildPythonPackage {
669 698 name = "infrae.cache-1.0.1";
670 699 doCheck = false;
671 700 propagatedBuildInputs = [
672 701 self."beaker"
673 702 self."repoze.lru"
674 703 ];
675 704 src = fetchurl {
676 705 url = "https://files.pythonhosted.org/packages/bb/f0/e7d5e984cf6592fd2807dc7bc44a93f9d18e04e6a61f87fdfb2622422d74/infrae.cache-1.0.1.tar.gz";
677 706 sha256 = "1dvqsjn8vw253wz9d1pz17j79mf4bs53dvp2qxck2qdp1am1njw4";
678 707 };
679 708 meta = {
680 709 license = [ pkgs.lib.licenses.zpl21 ];
681 710 };
682 711 };
683 712 "invoke" = super.buildPythonPackage {
684 713 name = "invoke-0.13.0";
685 714 doCheck = false;
686 715 src = fetchurl {
687 716 url = "https://files.pythonhosted.org/packages/47/bf/d07ef52fa1ac645468858bbac7cb95b246a972a045e821493d17d89c81be/invoke-0.13.0.tar.gz";
688 717 sha256 = "0794vhgxfmkh0vzkkg5cfv1w82g3jc3xr18wim29far9qpx9468s";
689 718 };
690 719 meta = {
691 720 license = [ pkgs.lib.licenses.bsdOriginal ];
692 721 };
693 722 };
694 723 "ipaddress" = super.buildPythonPackage {
695 724 name = "ipaddress-1.0.22";
696 725 doCheck = false;
697 726 src = fetchurl {
698 727 url = "https://files.pythonhosted.org/packages/97/8d/77b8cedcfbf93676148518036c6b1ce7f8e14bf07e95d7fd4ddcb8cc052f/ipaddress-1.0.22.tar.gz";
699 728 sha256 = "0b570bm6xqpjwqis15pvdy6lyvvzfndjvkynilcddjj5x98wfimi";
700 729 };
701 730 meta = {
702 731 license = [ pkgs.lib.licenses.psfl ];
703 732 };
704 733 };
705 734 "ipdb" = super.buildPythonPackage {
706 735 name = "ipdb-0.12";
707 736 doCheck = false;
708 737 propagatedBuildInputs = [
709 738 self."setuptools"
710 739 self."ipython"
711 740 ];
712 741 src = fetchurl {
713 742 url = "https://files.pythonhosted.org/packages/6d/43/c3c2e866a8803e196d6209595020a4a6db1a3c5d07c01455669497ae23d0/ipdb-0.12.tar.gz";
714 743 sha256 = "1khr2n7xfy8hg65kj1bsrjq9g7656pp0ybfa8abpbzpdawji3qnw";
715 744 };
716 745 meta = {
717 746 license = [ pkgs.lib.licenses.bsdOriginal ];
718 747 };
719 748 };
720 749 "ipython" = super.buildPythonPackage {
721 750 name = "ipython-5.1.0";
722 751 doCheck = false;
723 752 propagatedBuildInputs = [
724 753 self."setuptools"
725 754 self."decorator"
726 755 self."pickleshare"
727 756 self."simplegeneric"
728 757 self."traitlets"
729 758 self."prompt-toolkit"
730 759 self."pygments"
731 760 self."pexpect"
732 761 self."backports.shutil-get-terminal-size"
733 762 self."pathlib2"
734 763 self."pexpect"
735 764 ];
736 765 src = fetchurl {
737 766 url = "https://files.pythonhosted.org/packages/89/63/a9292f7cd9d0090a0f995e1167f3f17d5889dcbc9a175261719c513b9848/ipython-5.1.0.tar.gz";
738 767 sha256 = "0qdrf6aj9kvjczd5chj1my8y2iq09am9l8bb2a1334a52d76kx3y";
739 768 };
740 769 meta = {
741 770 license = [ pkgs.lib.licenses.bsdOriginal ];
742 771 };
743 772 };
744 773 "ipython-genutils" = super.buildPythonPackage {
745 774 name = "ipython-genutils-0.2.0";
746 775 doCheck = false;
747 776 src = fetchurl {
748 777 url = "https://files.pythonhosted.org/packages/e8/69/fbeffffc05236398ebfcfb512b6d2511c622871dca1746361006da310399/ipython_genutils-0.2.0.tar.gz";
749 778 sha256 = "1a4bc9y8hnvq6cp08qs4mckgm6i6ajpndp4g496rvvzcfmp12bpb";
750 779 };
751 780 meta = {
752 781 license = [ pkgs.lib.licenses.bsdOriginal ];
753 782 };
754 783 };
755 784 "iso8601" = super.buildPythonPackage {
756 785 name = "iso8601-0.1.12";
757 786 doCheck = false;
758 787 src = fetchurl {
759 788 url = "https://files.pythonhosted.org/packages/45/13/3db24895497345fb44c4248c08b16da34a9eb02643cea2754b21b5ed08b0/iso8601-0.1.12.tar.gz";
760 789 sha256 = "10nyvvnrhw2w3p09v1ica4lgj6f4g9j3kkfx17qmraiq3w7b5i29";
761 790 };
762 791 meta = {
763 792 license = [ pkgs.lib.licenses.mit ];
764 793 };
765 794 };
766 795 "isodate" = super.buildPythonPackage {
767 796 name = "isodate-0.6.0";
768 797 doCheck = false;
769 798 propagatedBuildInputs = [
770 799 self."six"
771 800 ];
772 801 src = fetchurl {
773 802 url = "https://files.pythonhosted.org/packages/b1/80/fb8c13a4cd38eb5021dc3741a9e588e4d1de88d895c1910c6fc8a08b7a70/isodate-0.6.0.tar.gz";
774 803 sha256 = "1n7jkz68kk5pwni540pr5zdh99bf6ywydk1p5pdrqisrawylldif";
775 804 };
776 805 meta = {
777 806 license = [ pkgs.lib.licenses.bsdOriginal ];
778 807 };
779 808 };
780 809 "itsdangerous" = super.buildPythonPackage {
781 810 name = "itsdangerous-0.24";
782 811 doCheck = false;
783 812 src = fetchurl {
784 813 url = "https://files.pythonhosted.org/packages/dc/b4/a60bcdba945c00f6d608d8975131ab3f25b22f2bcfe1dab221165194b2d4/itsdangerous-0.24.tar.gz";
785 814 sha256 = "06856q6x675ly542ig0plbqcyab6ksfzijlyf1hzhgg3sgwgrcyb";
786 815 };
787 816 meta = {
788 817 license = [ pkgs.lib.licenses.bsdOriginal ];
789 818 };
790 819 };
791 820 "jinja2" = super.buildPythonPackage {
792 821 name = "jinja2-2.9.6";
793 822 doCheck = false;
794 823 propagatedBuildInputs = [
795 824 self."markupsafe"
796 825 ];
797 826 src = fetchurl {
798 827 url = "https://files.pythonhosted.org/packages/90/61/f820ff0076a2599dd39406dcb858ecb239438c02ce706c8e91131ab9c7f1/Jinja2-2.9.6.tar.gz";
799 828 sha256 = "1zzrkywhziqffrzks14kzixz7nd4yh2vc0fb04a68vfd2ai03anx";
800 829 };
801 830 meta = {
802 831 license = [ pkgs.lib.licenses.bsdOriginal ];
803 832 };
804 833 };
805 834 "jsonschema" = super.buildPythonPackage {
806 835 name = "jsonschema-2.6.0";
807 836 doCheck = false;
808 837 propagatedBuildInputs = [
809 838 self."functools32"
810 839 ];
811 840 src = fetchurl {
812 841 url = "https://files.pythonhosted.org/packages/58/b9/171dbb07e18c6346090a37f03c7e74410a1a56123f847efed59af260a298/jsonschema-2.6.0.tar.gz";
813 842 sha256 = "00kf3zmpp9ya4sydffpifn0j0mzm342a2vzh82p6r0vh10cg7xbg";
814 843 };
815 844 meta = {
816 845 license = [ pkgs.lib.licenses.mit ];
817 846 };
818 847 };
819 848 "jupyter-client" = super.buildPythonPackage {
820 849 name = "jupyter-client-5.0.0";
821 850 doCheck = false;
822 851 propagatedBuildInputs = [
823 852 self."traitlets"
824 853 self."jupyter-core"
825 854 self."pyzmq"
826 855 self."python-dateutil"
827 856 ];
828 857 src = fetchurl {
829 858 url = "https://files.pythonhosted.org/packages/e5/6f/65412ed462202b90134b7e761b0b7e7f949e07a549c1755475333727b3d0/jupyter_client-5.0.0.tar.gz";
830 859 sha256 = "0nxw4rqk4wsjhc87gjqd7pv89cb9dnimcfnmcmp85bmrvv1gjri7";
831 860 };
832 861 meta = {
833 862 license = [ pkgs.lib.licenses.bsdOriginal ];
834 863 };
835 864 };
836 865 "jupyter-core" = super.buildPythonPackage {
837 866 name = "jupyter-core-4.5.0";
838 867 doCheck = false;
839 868 propagatedBuildInputs = [
840 869 self."traitlets"
841 870 ];
842 871 src = fetchurl {
843 872 url = "https://files.pythonhosted.org/packages/4a/de/ff4ca734656d17ebe0450807b59d728f45277e2e7f4b82bc9aae6cb82961/jupyter_core-4.5.0.tar.gz";
844 873 sha256 = "1xr4pbghwk5hayn5wwnhb7z95380r45p79gf5if5pi1akwg7qvic";
845 874 };
846 875 meta = {
847 876 license = [ pkgs.lib.licenses.bsdOriginal ];
848 877 };
849 878 };
850 879 "kombu" = super.buildPythonPackage {
851 name = "kombu-4.2.1";
880 name = "kombu-4.6.4";
852 881 doCheck = false;
853 882 propagatedBuildInputs = [
854 883 self."amqp"
884 self."importlib-metadata"
855 885 ];
856 886 src = fetchurl {
857 url = "https://files.pythonhosted.org/packages/39/9f/556b988833abede4a80dbd18b2bdf4e8ff4486dd482ed45da961347e8ed2/kombu-4.2.1.tar.gz";
858 sha256 = "10lh3hncvw67fz0k5vgbx3yh9gjfpqdlia1f13i28cgnc1nfrbc6";
887 url = "https://files.pythonhosted.org/packages/52/f2/5a64fc850b0533d2daf09a523406e51e85a8b2a4a2bc87a922a8906ba2aa/kombu-4.6.4.tar.gz";
888 sha256 = "16w02mvkxchz7041yia4h8xmqavci88szk18ynxvw4chzcnk3w75";
859 889 };
860 890 meta = {
861 891 license = [ pkgs.lib.licenses.bsdOriginal ];
862 892 };
863 893 };
864 894 "lxml" = super.buildPythonPackage {
865 895 name = "lxml-4.2.5";
866 896 doCheck = false;
867 897 src = fetchurl {
868 898 url = "https://files.pythonhosted.org/packages/4b/20/ddf5eb3bd5c57582d2b4652b4bbcf8da301bdfe5d805cb94e805f4d7464d/lxml-4.2.5.tar.gz";
869 899 sha256 = "0zw0y9hs0nflxhl9cs6ipwwh53szi3w2x06wl0k9cylyqac0cwin";
870 900 };
871 901 meta = {
872 902 license = [ pkgs.lib.licenses.bsdOriginal ];
873 903 };
874 904 };
875 905 "mako" = super.buildPythonPackage {
876 906 name = "mako-1.0.7";
877 907 doCheck = false;
878 908 propagatedBuildInputs = [
879 909 self."markupsafe"
880 910 ];
881 911 src = fetchurl {
882 912 url = "https://files.pythonhosted.org/packages/eb/f3/67579bb486517c0d49547f9697e36582cd19dafb5df9e687ed8e22de57fa/Mako-1.0.7.tar.gz";
883 913 sha256 = "1bi5gnr8r8dva06qpyx4kgjc6spm2k1y908183nbbaylggjzs0jf";
884 914 };
885 915 meta = {
886 916 license = [ pkgs.lib.licenses.mit ];
887 917 };
888 918 };
889 919 "markdown" = super.buildPythonPackage {
890 920 name = "markdown-2.6.11";
891 921 doCheck = false;
892 922 src = fetchurl {
893 923 url = "https://files.pythonhosted.org/packages/b3/73/fc5c850f44af5889192dff783b7b0d8f3fe8d30b65c8e3f78f8f0265fecf/Markdown-2.6.11.tar.gz";
894 924 sha256 = "108g80ryzykh8bj0i7jfp71510wrcixdi771lf2asyghgyf8cmm8";
895 925 };
896 926 meta = {
897 927 license = [ pkgs.lib.licenses.bsdOriginal ];
898 928 };
899 929 };
900 930 "markupsafe" = super.buildPythonPackage {
901 931 name = "markupsafe-1.1.0";
902 932 doCheck = false;
903 933 src = fetchurl {
904 934 url = "https://files.pythonhosted.org/packages/ac/7e/1b4c2e05809a4414ebce0892fe1e32c14ace86ca7d50c70f00979ca9b3a3/MarkupSafe-1.1.0.tar.gz";
905 935 sha256 = "1lxirjypbdd3l9jl4vliilhfnhy7c7f2vlldqg1b0i74khn375sf";
906 936 };
907 937 meta = {
908 938 license = [ pkgs.lib.licenses.bsdOriginal ];
909 939 };
910 940 };
911 941 "meld3" = super.buildPythonPackage {
912 942 name = "meld3-2.0.0";
913 943 doCheck = false;
914 944 src = fetchurl {
915 945 url = "https://files.pythonhosted.org/packages/00/3b/023446ddc1bf0b519c369cbe88269c30c6a64bd10af4817c73f560c302f7/meld3-2.0.0.tar.gz";
916 946 sha256 = "1fbyafwi0d54394hkmp65nf6vk0qm4kipf5z60pdp4244rvadz8y";
917 947 };
918 948 meta = {
919 949 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
920 950 };
921 951 };
922 952 "mistune" = super.buildPythonPackage {
923 953 name = "mistune-0.8.4";
924 954 doCheck = false;
925 955 src = fetchurl {
926 956 url = "https://files.pythonhosted.org/packages/2d/a4/509f6e7783ddd35482feda27bc7f72e65b5e7dc910eca4ab2164daf9c577/mistune-0.8.4.tar.gz";
927 957 sha256 = "0vkmsh0x480rni51lhyvigfdf06b9247z868pk3bal1wnnfl58sr";
928 958 };
929 959 meta = {
930 960 license = [ pkgs.lib.licenses.bsdOriginal ];
931 961 };
932 962 };
933 963 "mock" = super.buildPythonPackage {
934 964 name = "mock-1.0.1";
935 965 doCheck = false;
936 966 src = fetchurl {
937 967 url = "https://files.pythonhosted.org/packages/a2/52/7edcd94f0afb721a2d559a5b9aae8af4f8f2c79bc63fdbe8a8a6c9b23bbe/mock-1.0.1.tar.gz";
938 968 sha256 = "0kzlsbki6q0awf89rc287f3aj8x431lrajf160a70z0ikhnxsfdq";
939 969 };
940 970 meta = {
941 971 license = [ pkgs.lib.licenses.bsdOriginal ];
942 972 };
943 973 };
944 974 "more-itertools" = super.buildPythonPackage {
945 975 name = "more-itertools-5.0.0";
946 976 doCheck = false;
947 977 propagatedBuildInputs = [
948 978 self."six"
949 979 ];
950 980 src = fetchurl {
951 981 url = "https://files.pythonhosted.org/packages/dd/26/30fc0d541d9fdf55faf5ba4b0fd68f81d5bd2447579224820ad525934178/more-itertools-5.0.0.tar.gz";
952 982 sha256 = "1r12cm6mcdwdzz7d47a6g4l437xsvapdlgyhqay3i2nrlv03da9q";
953 983 };
954 984 meta = {
955 985 license = [ pkgs.lib.licenses.mit ];
956 986 };
957 987 };
958 988 "msgpack-python" = super.buildPythonPackage {
959 989 name = "msgpack-python-0.5.6";
960 990 doCheck = false;
961 991 src = fetchurl {
962 992 url = "https://files.pythonhosted.org/packages/8a/20/6eca772d1a5830336f84aca1d8198e5a3f4715cd1c7fc36d3cc7f7185091/msgpack-python-0.5.6.tar.gz";
963 993 sha256 = "16wh8qgybmfh4pjp8vfv78mdlkxfmcasg78lzlnm6nslsfkci31p";
964 994 };
965 995 meta = {
966 996 license = [ pkgs.lib.licenses.asl20 ];
967 997 };
968 998 };
969 999 "mysql-python" = super.buildPythonPackage {
970 1000 name = "mysql-python-1.2.5";
971 1001 doCheck = false;
972 1002 src = fetchurl {
973 1003 url = "https://files.pythonhosted.org/packages/a5/e9/51b544da85a36a68debe7a7091f068d802fc515a3a202652828c73453cad/MySQL-python-1.2.5.zip";
974 1004 sha256 = "0x0c2jg0bb3pp84njaqiic050qkyd7ymwhfvhipnimg58yv40441";
975 1005 };
976 1006 meta = {
977 1007 license = [ pkgs.lib.licenses.gpl1 ];
978 1008 };
979 1009 };
980 1010 "nbconvert" = super.buildPythonPackage {
981 1011 name = "nbconvert-5.3.1";
982 1012 doCheck = false;
983 1013 propagatedBuildInputs = [
984 1014 self."mistune"
985 1015 self."jinja2"
986 1016 self."pygments"
987 1017 self."traitlets"
988 1018 self."jupyter-core"
989 1019 self."nbformat"
990 1020 self."entrypoints"
991 1021 self."bleach"
992 1022 self."pandocfilters"
993 1023 self."testpath"
994 1024 ];
995 1025 src = fetchurl {
996 1026 url = "https://files.pythonhosted.org/packages/b9/a4/d0a0938ad6f5eeb4dea4e73d255c617ef94b0b2849d51194c9bbdb838412/nbconvert-5.3.1.tar.gz";
997 1027 sha256 = "1f9dkvpx186xjm4xab0qbph588mncp4vqk3fmxrsnqs43mks9c8j";
998 1028 };
999 1029 meta = {
1000 1030 license = [ pkgs.lib.licenses.bsdOriginal ];
1001 1031 };
1002 1032 };
1003 1033 "nbformat" = super.buildPythonPackage {
1004 1034 name = "nbformat-4.4.0";
1005 1035 doCheck = false;
1006 1036 propagatedBuildInputs = [
1007 1037 self."ipython-genutils"
1008 1038 self."traitlets"
1009 1039 self."jsonschema"
1010 1040 self."jupyter-core"
1011 1041 ];
1012 1042 src = fetchurl {
1013 1043 url = "https://files.pythonhosted.org/packages/6e/0e/160754f7ae3e984863f585a3743b0ed1702043a81245907c8fae2d537155/nbformat-4.4.0.tar.gz";
1014 1044 sha256 = "00nlf08h8yc4q73nphfvfhxrcnilaqanb8z0mdy6nxk0vzq4wjgp";
1015 1045 };
1016 1046 meta = {
1017 1047 license = [ pkgs.lib.licenses.bsdOriginal ];
1018 1048 };
1019 1049 };
1020 1050 "packaging" = super.buildPythonPackage {
1021 1051 name = "packaging-15.2";
1022 1052 doCheck = false;
1023 1053 src = fetchurl {
1024 1054 url = "https://files.pythonhosted.org/packages/24/c4/185da1304f07047dc9e0c46c31db75c0351bd73458ac3efad7da3dbcfbe1/packaging-15.2.tar.gz";
1025 1055 sha256 = "1zn60w84bxvw6wypffka18ca66pa1k2cfrq3cq8fnsfja5m3k4ng";
1026 1056 };
1027 1057 meta = {
1028 1058 license = [ pkgs.lib.licenses.asl20 ];
1029 1059 };
1030 1060 };
1031 1061 "pandocfilters" = super.buildPythonPackage {
1032 1062 name = "pandocfilters-1.4.2";
1033 1063 doCheck = false;
1034 1064 src = fetchurl {
1035 1065 url = "https://files.pythonhosted.org/packages/4c/ea/236e2584af67bb6df960832731a6e5325fd4441de001767da328c33368ce/pandocfilters-1.4.2.tar.gz";
1036 1066 sha256 = "1a8d9b7s48gmq9zj0pmbyv2sivn5i7m6mybgpkk4jm5vd7hp1pdk";
1037 1067 };
1038 1068 meta = {
1039 1069 license = [ pkgs.lib.licenses.bsdOriginal ];
1040 1070 };
1041 1071 };
1042 1072 "paste" = super.buildPythonPackage {
1043 1073 name = "paste-3.0.8";
1044 1074 doCheck = false;
1045 1075 propagatedBuildInputs = [
1046 1076 self."six"
1047 1077 ];
1048 1078 src = fetchurl {
1049 1079 url = "https://files.pythonhosted.org/packages/66/65/e3acf1663438483c1f6ced0b6c6f3b90da9f0faacb0a6e2aa0f3f9f4b235/Paste-3.0.8.tar.gz";
1050 1080 sha256 = "05w1sh6ky4d7pmdb8nv82n13w22jcn3qsagg5ih3hjmbws9kkwf4";
1051 1081 };
1052 1082 meta = {
1053 1083 license = [ pkgs.lib.licenses.mit ];
1054 1084 };
1055 1085 };
1056 1086 "pastedeploy" = super.buildPythonPackage {
1057 1087 name = "pastedeploy-2.0.1";
1058 1088 doCheck = false;
1059 1089 src = fetchurl {
1060 1090 url = "https://files.pythonhosted.org/packages/19/a0/5623701df7e2478a68a1b685d1a84518024eef994cde7e4da8449a31616f/PasteDeploy-2.0.1.tar.gz";
1061 1091 sha256 = "02imfbbx1mi2h546f3sr37m47dk9qizaqhzzlhx8bkzxa6fzn8yl";
1062 1092 };
1063 1093 meta = {
1064 1094 license = [ pkgs.lib.licenses.mit ];
1065 1095 };
1066 1096 };
1067 1097 "pastescript" = super.buildPythonPackage {
1068 1098 name = "pastescript-3.1.0";
1069 1099 doCheck = false;
1070 1100 propagatedBuildInputs = [
1071 1101 self."paste"
1072 1102 self."pastedeploy"
1073 1103 self."six"
1074 1104 ];
1075 1105 src = fetchurl {
1076 1106 url = "https://files.pythonhosted.org/packages/9e/1d/14db1c283eb21a5d36b6ba1114c13b709629711e64acab653d9994fe346f/PasteScript-3.1.0.tar.gz";
1077 1107 sha256 = "02qcxjjr32ks7a6d4f533wl34ysc7yhwlrfcyqwqbzr52250v4fs";
1078 1108 };
1079 1109 meta = {
1080 1110 license = [ pkgs.lib.licenses.mit ];
1081 1111 };
1082 1112 };
1083 1113 "pathlib2" = super.buildPythonPackage {
1084 1114 name = "pathlib2-2.3.4";
1085 1115 doCheck = false;
1086 1116 propagatedBuildInputs = [
1087 1117 self."six"
1088 1118 self."scandir"
1089 1119 ];
1090 1120 src = fetchurl {
1091 1121 url = "https://files.pythonhosted.org/packages/b5/f4/9c7cc726ece2498b6c8b62d3262aa43f59039b953fe23c9964ac5e18d40b/pathlib2-2.3.4.tar.gz";
1092 1122 sha256 = "1y0f9rkm1924zrc5dn4bwxlhgdkbml82lkcc28l5rgmr7d918q24";
1093 1123 };
1094 1124 meta = {
1095 1125 license = [ pkgs.lib.licenses.mit ];
1096 1126 };
1097 1127 };
1098 1128 "peppercorn" = super.buildPythonPackage {
1099 1129 name = "peppercorn-0.6";
1100 1130 doCheck = false;
1101 1131 src = fetchurl {
1102 1132 url = "https://files.pythonhosted.org/packages/e4/77/93085de7108cdf1a0b092ff443872a8f9442c736d7ddebdf2f27627935f4/peppercorn-0.6.tar.gz";
1103 1133 sha256 = "1ip4bfwcpwkq9hz2dai14k2cyabvwrnvcvrcmzxmqm04g8fnimwn";
1104 1134 };
1105 1135 meta = {
1106 1136 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1107 1137 };
1108 1138 };
1109 1139 "pexpect" = super.buildPythonPackage {
1110 1140 name = "pexpect-4.7.0";
1111 1141 doCheck = false;
1112 1142 propagatedBuildInputs = [
1113 1143 self."ptyprocess"
1114 1144 ];
1115 1145 src = fetchurl {
1116 1146 url = "https://files.pythonhosted.org/packages/1c/b1/362a0d4235496cb42c33d1d8732b5e2c607b0129ad5fdd76f5a583b9fcb3/pexpect-4.7.0.tar.gz";
1117 1147 sha256 = "1sv2rri15zwhds85a4kamwh9pj49qcxv7m4miyr4jfpfwv81yb4y";
1118 1148 };
1119 1149 meta = {
1120 1150 license = [ pkgs.lib.licenses.isc { fullName = "ISC License (ISCL)"; } ];
1121 1151 };
1122 1152 };
1123 1153 "pickleshare" = super.buildPythonPackage {
1124 1154 name = "pickleshare-0.7.5";
1125 1155 doCheck = false;
1126 1156 propagatedBuildInputs = [
1127 1157 self."pathlib2"
1128 1158 ];
1129 1159 src = fetchurl {
1130 1160 url = "https://files.pythonhosted.org/packages/d8/b6/df3c1c9b616e9c0edbc4fbab6ddd09df9535849c64ba51fcb6531c32d4d8/pickleshare-0.7.5.tar.gz";
1131 1161 sha256 = "1jmghg3c53yp1i8cm6pcrm280ayi8621rwyav9fac7awjr3kss47";
1132 1162 };
1133 1163 meta = {
1134 1164 license = [ pkgs.lib.licenses.mit ];
1135 1165 };
1136 1166 };
1137 1167 "plaster" = super.buildPythonPackage {
1138 1168 name = "plaster-1.0";
1139 1169 doCheck = false;
1140 1170 propagatedBuildInputs = [
1141 1171 self."setuptools"
1142 1172 ];
1143 1173 src = fetchurl {
1144 1174 url = "https://files.pythonhosted.org/packages/37/e1/56d04382d718d32751017d32f351214384e529b794084eee20bb52405563/plaster-1.0.tar.gz";
1145 1175 sha256 = "1hy8k0nv2mxq94y5aysk6hjk9ryb4bsd13g83m60hcyzxz3wflc3";
1146 1176 };
1147 1177 meta = {
1148 1178 license = [ pkgs.lib.licenses.mit ];
1149 1179 };
1150 1180 };
1151 1181 "plaster-pastedeploy" = super.buildPythonPackage {
1152 1182 name = "plaster-pastedeploy-0.7";
1153 1183 doCheck = false;
1154 1184 propagatedBuildInputs = [
1155 1185 self."pastedeploy"
1156 1186 self."plaster"
1157 1187 ];
1158 1188 src = fetchurl {
1159 1189 url = "https://files.pythonhosted.org/packages/99/69/2d3bc33091249266a1bd3cf24499e40ab31d54dffb4a7d76fe647950b98c/plaster_pastedeploy-0.7.tar.gz";
1160 1190 sha256 = "1zg7gcsvc1kzay1ry5p699rg2qavfsxqwl17mqxzr0gzw6j9679r";
1161 1191 };
1162 1192 meta = {
1163 1193 license = [ pkgs.lib.licenses.mit ];
1164 1194 };
1165 1195 };
1166 1196 "pluggy" = super.buildPythonPackage {
1167 1197 name = "pluggy-0.11.0";
1168 1198 doCheck = false;
1169 1199 src = fetchurl {
1170 1200 url = "https://files.pythonhosted.org/packages/0d/a1/862ab336e8128fde20981d2c1aa8506693412daf5083b1911d539412676b/pluggy-0.11.0.tar.gz";
1171 1201 sha256 = "10511a54dvafw1jrk75mrhml53c7b7w4yaw7241696lc2hfvr895";
1172 1202 };
1173 1203 meta = {
1174 1204 license = [ pkgs.lib.licenses.mit ];
1175 1205 };
1176 1206 };
1177 1207 "prompt-toolkit" = super.buildPythonPackage {
1178 1208 name = "prompt-toolkit-1.0.16";
1179 1209 doCheck = false;
1180 1210 propagatedBuildInputs = [
1181 1211 self."six"
1182 1212 self."wcwidth"
1183 1213 ];
1184 1214 src = fetchurl {
1185 1215 url = "https://files.pythonhosted.org/packages/f1/03/bb36771dc9fa7553ac4bdc639a9ecdf6fda0ff4176faf940d97e3c16e41d/prompt_toolkit-1.0.16.tar.gz";
1186 1216 sha256 = "1d65hm6nf0cbq0q0121m60zzy4s1fpg9fn761s1yxf08dridvkn1";
1187 1217 };
1188 1218 meta = {
1189 1219 license = [ pkgs.lib.licenses.bsdOriginal ];
1190 1220 };
1191 1221 };
1192 1222 "psutil" = super.buildPythonPackage {
1193 1223 name = "psutil-5.5.1";
1194 1224 doCheck = false;
1195 1225 src = fetchurl {
1196 1226 url = "https://files.pythonhosted.org/packages/c7/01/7c30b247cdc5ba29623faa5c8cf1f1bbf7e041783c340414b0ed7e067c64/psutil-5.5.1.tar.gz";
1197 1227 sha256 = "045qaqvn6k90bj5bcy259yrwcd2afgznaav3sfhphy9b8ambzkkj";
1198 1228 };
1199 1229 meta = {
1200 1230 license = [ pkgs.lib.licenses.bsdOriginal ];
1201 1231 };
1202 1232 };
1203 1233 "psycopg2" = super.buildPythonPackage {
1204 1234 name = "psycopg2-2.8.3";
1205 1235 doCheck = false;
1206 1236 src = fetchurl {
1207 1237 url = "https://files.pythonhosted.org/packages/5c/1c/6997288da181277a0c29bc39a5f9143ff20b8c99f2a7d059cfb55163e165/psycopg2-2.8.3.tar.gz";
1208 1238 sha256 = "0ms4kx0p5n281l89awccix4d05ybmdngnjjpi9jbzd0rhf1nwyl9";
1209 1239 };
1210 1240 meta = {
1211 1241 license = [ pkgs.lib.licenses.zpl21 { fullName = "GNU Library or Lesser General Public License (LGPL)"; } { fullName = "LGPL with exceptions or ZPL"; } ];
1212 1242 };
1213 1243 };
1214 1244 "ptyprocess" = super.buildPythonPackage {
1215 1245 name = "ptyprocess-0.6.0";
1216 1246 doCheck = false;
1217 1247 src = fetchurl {
1218 1248 url = "https://files.pythonhosted.org/packages/7d/2d/e4b8733cf79b7309d84c9081a4ab558c89d8c89da5961bf4ddb050ca1ce0/ptyprocess-0.6.0.tar.gz";
1219 1249 sha256 = "1h4lcd3w5nrxnsk436ar7fwkiy5rfn5wj2xwy9l0r4mdqnf2jgwj";
1220 1250 };
1221 1251 meta = {
1222 1252 license = [ ];
1223 1253 };
1224 1254 };
1225 1255 "py" = super.buildPythonPackage {
1226 1256 name = "py-1.6.0";
1227 1257 doCheck = false;
1228 1258 src = fetchurl {
1229 1259 url = "https://files.pythonhosted.org/packages/4f/38/5f427d1eedae73063ce4da680d2bae72014995f9fdeaa57809df61c968cd/py-1.6.0.tar.gz";
1230 1260 sha256 = "1wcs3zv9wl5m5x7p16avqj2gsrviyb23yvc3pr330isqs0sh98q6";
1231 1261 };
1232 1262 meta = {
1233 1263 license = [ pkgs.lib.licenses.mit ];
1234 1264 };
1235 1265 };
1236 1266 "py-bcrypt" = super.buildPythonPackage {
1237 1267 name = "py-bcrypt-0.4";
1238 1268 doCheck = false;
1239 1269 src = fetchurl {
1240 1270 url = "https://files.pythonhosted.org/packages/68/b1/1c3068c5c4d2e35c48b38dcc865301ebfdf45f54507086ac65ced1fd3b3d/py-bcrypt-0.4.tar.gz";
1241 1271 sha256 = "0y6smdggwi5s72v6p1nn53dg6w05hna3d264cq6kas0lap73p8az";
1242 1272 };
1243 1273 meta = {
1244 1274 license = [ pkgs.lib.licenses.bsdOriginal ];
1245 1275 };
1246 1276 };
1247 1277 "py-gfm" = super.buildPythonPackage {
1248 1278 name = "py-gfm-0.1.4";
1249 1279 doCheck = false;
1250 1280 propagatedBuildInputs = [
1251 1281 self."setuptools"
1252 1282 self."markdown"
1253 1283 ];
1254 1284 src = fetchurl {
1255 1285 url = "https://files.pythonhosted.org/packages/06/ee/004a03a1d92bb386dae44f6dd087db541bc5093374f1637d4d4ae5596cc2/py-gfm-0.1.4.tar.gz";
1256 1286 sha256 = "0zip06g2isivx8fzgqd4n9qzsa22c25jas1rsb7m2rnjg72m0rzg";
1257 1287 };
1258 1288 meta = {
1259 1289 license = [ pkgs.lib.licenses.bsdOriginal ];
1260 1290 };
1261 1291 };
1262 1292 "pyasn1" = super.buildPythonPackage {
1263 1293 name = "pyasn1-0.4.7";
1264 1294 doCheck = false;
1265 1295 src = fetchurl {
1266 1296 url = "https://files.pythonhosted.org/packages/ca/f8/2a60a2c88a97558bdd289b6dc9eb75b00bd90ff34155d681ba6dbbcb46b2/pyasn1-0.4.7.tar.gz";
1267 1297 sha256 = "0146ryp4g09ycy8p3l2vigmgfg42n4gb8whgg8cysrhxr9b56jd9";
1268 1298 };
1269 1299 meta = {
1270 1300 license = [ pkgs.lib.licenses.bsdOriginal ];
1271 1301 };
1272 1302 };
1273 1303 "pyasn1-modules" = super.buildPythonPackage {
1274 1304 name = "pyasn1-modules-0.2.6";
1275 1305 doCheck = false;
1276 1306 propagatedBuildInputs = [
1277 1307 self."pyasn1"
1278 1308 ];
1279 1309 src = fetchurl {
1280 1310 url = "https://files.pythonhosted.org/packages/f1/a9/a1ef72a0e43feff643cf0130a08123dea76205e7a0dda37e3efb5f054a31/pyasn1-modules-0.2.6.tar.gz";
1281 1311 sha256 = "08hph9j1r018drnrny29l7dl2q0cin78csswrhwrh8jmq61pmha3";
1282 1312 };
1283 1313 meta = {
1284 1314 license = [ pkgs.lib.licenses.bsdOriginal pkgs.lib.licenses.bsd2 ];
1285 1315 };
1286 1316 };
1287 1317 "pycparser" = super.buildPythonPackage {
1288 1318 name = "pycparser-2.19";
1289 1319 doCheck = false;
1290 1320 src = fetchurl {
1291 1321 url = "https://files.pythonhosted.org/packages/68/9e/49196946aee219aead1290e00d1e7fdeab8567783e83e1b9ab5585e6206a/pycparser-2.19.tar.gz";
1292 1322 sha256 = "1cr5dcj9628lkz1qlwq3fv97c25363qppkmcayqvd05dpy573259";
1293 1323 };
1294 1324 meta = {
1295 1325 license = [ pkgs.lib.licenses.bsdOriginal ];
1296 1326 };
1297 1327 };
1298 1328 "pycrypto" = super.buildPythonPackage {
1299 1329 name = "pycrypto-2.6.1";
1300 1330 doCheck = false;
1301 1331 src = fetchurl {
1302 1332 url = "https://files.pythonhosted.org/packages/60/db/645aa9af249f059cc3a368b118de33889219e0362141e75d4eaf6f80f163/pycrypto-2.6.1.tar.gz";
1303 1333 sha256 = "0g0ayql5b9mkjam8hym6zyg6bv77lbh66rv1fyvgqb17kfc1xkpj";
1304 1334 };
1305 1335 meta = {
1306 1336 license = [ pkgs.lib.licenses.publicDomain ];
1307 1337 };
1308 1338 };
1309 1339 "pycurl" = super.buildPythonPackage {
1310 1340 name = "pycurl-7.43.0.2";
1311 1341 doCheck = false;
1312 1342 src = fetchurl {
1313 1343 url = "https://files.pythonhosted.org/packages/e8/e4/0dbb8735407189f00b33d84122b9be52c790c7c3b25286826f4e1bdb7bde/pycurl-7.43.0.2.tar.gz";
1314 1344 sha256 = "1915kb04k1j4y6k1dx1sgnbddxrl9r1n4q928if2lkrdm73xy30g";
1315 1345 };
1316 1346 meta = {
1317 1347 license = [ pkgs.lib.licenses.mit { fullName = "LGPL/MIT"; } { fullName = "GNU Library or Lesser General Public License (LGPL)"; } ];
1318 1348 };
1319 1349 };
1320 1350 "pygments" = super.buildPythonPackage {
1321 1351 name = "pygments-2.4.2";
1322 1352 doCheck = false;
1323 1353 src = fetchurl {
1324 1354 url = "https://files.pythonhosted.org/packages/7e/ae/26808275fc76bf2832deb10d3a3ed3107bc4de01b85dcccbe525f2cd6d1e/Pygments-2.4.2.tar.gz";
1325 1355 sha256 = "15v2sqm5g12bqa0c7wikfh9ck2nl97ayizy1hpqhmws5gqalq748";
1326 1356 };
1327 1357 meta = {
1328 1358 license = [ pkgs.lib.licenses.bsdOriginal ];
1329 1359 };
1330 1360 };
1331 1361 "pymysql" = super.buildPythonPackage {
1332 1362 name = "pymysql-0.8.1";
1333 1363 doCheck = false;
1334 1364 src = fetchurl {
1335 1365 url = "https://files.pythonhosted.org/packages/44/39/6bcb83cae0095a31b6be4511707fdf2009d3e29903a55a0494d3a9a2fac0/PyMySQL-0.8.1.tar.gz";
1336 1366 sha256 = "0a96crz55bw4h6myh833skrli7b0ck89m3x673y2z2ryy7zrpq9l";
1337 1367 };
1338 1368 meta = {
1339 1369 license = [ pkgs.lib.licenses.mit ];
1340 1370 };
1341 1371 };
1342 1372 "pyotp" = super.buildPythonPackage {
1343 1373 name = "pyotp-2.2.7";
1344 1374 doCheck = false;
1345 1375 src = fetchurl {
1346 1376 url = "https://files.pythonhosted.org/packages/b1/ab/477cda97b6ca7baced5106471cb1ac1fe698d1b035983b9f8ee3422989eb/pyotp-2.2.7.tar.gz";
1347 1377 sha256 = "00p69nw431f0s2ilg0hnd77p1l22m06p9rq4f8zfapmavnmzw3xy";
1348 1378 };
1349 1379 meta = {
1350 1380 license = [ pkgs.lib.licenses.mit ];
1351 1381 };
1352 1382 };
1353 1383 "pyparsing" = super.buildPythonPackage {
1354 1384 name = "pyparsing-2.3.0";
1355 1385 doCheck = false;
1356 1386 src = fetchurl {
1357 1387 url = "https://files.pythonhosted.org/packages/d0/09/3e6a5eeb6e04467b737d55f8bba15247ac0876f98fae659e58cd744430c6/pyparsing-2.3.0.tar.gz";
1358 1388 sha256 = "14k5v7n3xqw8kzf42x06bzp184spnlkya2dpjyflax6l3yrallzk";
1359 1389 };
1360 1390 meta = {
1361 1391 license = [ pkgs.lib.licenses.mit ];
1362 1392 };
1363 1393 };
1364 1394 "pyramid" = super.buildPythonPackage {
1365 1395 name = "pyramid-1.10.4";
1366 1396 doCheck = false;
1367 1397 propagatedBuildInputs = [
1368 1398 self."hupper"
1369 1399 self."plaster"
1370 1400 self."plaster-pastedeploy"
1371 1401 self."setuptools"
1372 1402 self."translationstring"
1373 1403 self."venusian"
1374 1404 self."webob"
1375 1405 self."zope.deprecation"
1376 1406 self."zope.interface"
1377 1407 self."repoze.lru"
1378 1408 ];
1379 1409 src = fetchurl {
1380 1410 url = "https://files.pythonhosted.org/packages/c2/43/1ae701c9c6bb3a434358e678a5e72c96e8aa55cf4cb1d2fa2041b5dd38b7/pyramid-1.10.4.tar.gz";
1381 1411 sha256 = "0rkxs1ajycg2zh1c94xlmls56mx5m161sn8112skj0amza6cn36q";
1382 1412 };
1383 1413 meta = {
1384 1414 license = [ { fullName = "Repoze Public License"; } { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1385 1415 };
1386 1416 };
1387 1417 "pyramid-debugtoolbar" = super.buildPythonPackage {
1388 1418 name = "pyramid-debugtoolbar-4.5";
1389 1419 doCheck = false;
1390 1420 propagatedBuildInputs = [
1391 1421 self."pyramid"
1392 1422 self."pyramid-mako"
1393 1423 self."repoze.lru"
1394 1424 self."pygments"
1395 1425 self."ipaddress"
1396 1426 ];
1397 1427 src = fetchurl {
1398 1428 url = "https://files.pythonhosted.org/packages/14/28/1f240239af340d19ee271ac62958158c79edb01a44ad8c9885508dd003d2/pyramid_debugtoolbar-4.5.tar.gz";
1399 1429 sha256 = "0x2p3409pnx66n6dx5vc0mk2r1cp1ydr8mp120w44r9pwcngbibl";
1400 1430 };
1401 1431 meta = {
1402 1432 license = [ { fullName = "Repoze Public License"; } pkgs.lib.licenses.bsdOriginal ];
1403 1433 };
1404 1434 };
1405 1435 "pyramid-jinja2" = super.buildPythonPackage {
1406 1436 name = "pyramid-jinja2-2.7";
1407 1437 doCheck = false;
1408 1438 propagatedBuildInputs = [
1409 1439 self."pyramid"
1410 1440 self."zope.deprecation"
1411 1441 self."jinja2"
1412 1442 self."markupsafe"
1413 1443 ];
1414 1444 src = fetchurl {
1415 1445 url = "https://files.pythonhosted.org/packages/d8/80/d60a7233823de22ce77bd864a8a83736a1fe8b49884b08303a2e68b2c853/pyramid_jinja2-2.7.tar.gz";
1416 1446 sha256 = "1sz5s0pp5jqhf4w22w9527yz8hgdi4mhr6apd6vw1gm5clghh8aw";
1417 1447 };
1418 1448 meta = {
1419 1449 license = [ { fullName = "Repoze Public License"; } { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1420 1450 };
1421 1451 };
1422 1452 "pyramid-mailer" = super.buildPythonPackage {
1423 1453 name = "pyramid-mailer-0.15.1";
1424 1454 doCheck = false;
1425 1455 propagatedBuildInputs = [
1426 1456 self."pyramid"
1427 1457 self."repoze.sendmail"
1428 1458 self."transaction"
1429 1459 ];
1430 1460 src = fetchurl {
1431 1461 url = "https://files.pythonhosted.org/packages/a0/f2/6febf5459dff4d7e653314d575469ad2e11b9d2af2c3606360e1c67202f2/pyramid_mailer-0.15.1.tar.gz";
1432 1462 sha256 = "16vg8jb203jgb7b0hd6wllfqvp542qh2ry1gjai2m6qpv5agy2pc";
1433 1463 };
1434 1464 meta = {
1435 1465 license = [ pkgs.lib.licenses.bsdOriginal ];
1436 1466 };
1437 1467 };
1438 1468 "pyramid-mako" = super.buildPythonPackage {
1439 1469 name = "pyramid-mako-1.0.2";
1440 1470 doCheck = false;
1441 1471 propagatedBuildInputs = [
1442 1472 self."pyramid"
1443 1473 self."mako"
1444 1474 ];
1445 1475 src = fetchurl {
1446 1476 url = "https://files.pythonhosted.org/packages/f1/92/7e69bcf09676d286a71cb3bbb887b16595b96f9ba7adbdc239ffdd4b1eb9/pyramid_mako-1.0.2.tar.gz";
1447 1477 sha256 = "18gk2vliq8z4acblsl6yzgbvnr9rlxjlcqir47km7kvlk1xri83d";
1448 1478 };
1449 1479 meta = {
1450 1480 license = [ { fullName = "Repoze Public License"; } { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1451 1481 };
1452 1482 };
1453 1483 "pysqlite" = super.buildPythonPackage {
1454 1484 name = "pysqlite-2.8.3";
1455 1485 doCheck = false;
1456 1486 src = fetchurl {
1457 1487 url = "https://files.pythonhosted.org/packages/42/02/981b6703e3c83c5b25a829c6e77aad059f9481b0bbacb47e6e8ca12bd731/pysqlite-2.8.3.tar.gz";
1458 1488 sha256 = "1424gwq9sil2ffmnizk60q36vydkv8rxs6m7xs987kz8cdc37lqp";
1459 1489 };
1460 1490 meta = {
1461 1491 license = [ { fullName = "zlib/libpng License"; } { fullName = "zlib/libpng license"; } ];
1462 1492 };
1463 1493 };
1464 1494 "pytest" = super.buildPythonPackage {
1465 1495 name = "pytest-3.8.2";
1466 1496 doCheck = false;
1467 1497 propagatedBuildInputs = [
1468 1498 self."py"
1469 1499 self."six"
1470 1500 self."setuptools"
1471 1501 self."attrs"
1472 1502 self."more-itertools"
1473 1503 self."atomicwrites"
1474 1504 self."pluggy"
1475 1505 self."funcsigs"
1476 1506 self."pathlib2"
1477 1507 ];
1478 1508 src = fetchurl {
1479 1509 url = "https://files.pythonhosted.org/packages/5f/d2/7f77f406ac505abda02ab4afb50d06ebf304f6ea42fca34f8f37529106b2/pytest-3.8.2.tar.gz";
1480 1510 sha256 = "18nrwzn61kph2y6gxwfz9ms68rfvr9d4vcffsxng9p7jk9z18clk";
1481 1511 };
1482 1512 meta = {
1483 1513 license = [ pkgs.lib.licenses.mit ];
1484 1514 };
1485 1515 };
1486 1516 "pytest-cov" = super.buildPythonPackage {
1487 1517 name = "pytest-cov-2.6.0";
1488 1518 doCheck = false;
1489 1519 propagatedBuildInputs = [
1490 1520 self."pytest"
1491 1521 self."coverage"
1492 1522 ];
1493 1523 src = fetchurl {
1494 1524 url = "https://files.pythonhosted.org/packages/d9/e2/58f90a316fbd94dd50bf5c826a23f3f5d079fb3cc448c1e9f0e3c33a3d2a/pytest-cov-2.6.0.tar.gz";
1495 1525 sha256 = "0qnpp9y3ygx4jk4pf5ad71fh2skbvnr6gl54m7rg5qysnx4g0q73";
1496 1526 };
1497 1527 meta = {
1498 1528 license = [ pkgs.lib.licenses.bsdOriginal pkgs.lib.licenses.mit ];
1499 1529 };
1500 1530 };
1501 1531 "pytest-profiling" = super.buildPythonPackage {
1502 1532 name = "pytest-profiling-1.3.0";
1503 1533 doCheck = false;
1504 1534 propagatedBuildInputs = [
1505 1535 self."six"
1506 1536 self."pytest"
1507 1537 self."gprof2dot"
1508 1538 ];
1509 1539 src = fetchurl {
1510 1540 url = "https://files.pythonhosted.org/packages/f5/34/4626126e041a51ef50a80d0619519b18d20aef249aac25b0d0fdd47e57ee/pytest-profiling-1.3.0.tar.gz";
1511 1541 sha256 = "08r5afx5z22yvpmsnl91l4amsy1yxn8qsmm61mhp06mz8zjs51kb";
1512 1542 };
1513 1543 meta = {
1514 1544 license = [ pkgs.lib.licenses.mit ];
1515 1545 };
1516 1546 };
1517 1547 "pytest-runner" = super.buildPythonPackage {
1518 1548 name = "pytest-runner-4.2";
1519 1549 doCheck = false;
1520 1550 src = fetchurl {
1521 1551 url = "https://files.pythonhosted.org/packages/9e/b7/fe6e8f87f9a756fd06722216f1b6698ccba4d269eac6329d9f0c441d0f93/pytest-runner-4.2.tar.gz";
1522 1552 sha256 = "1gkpyphawxz38ni1gdq1fmwyqcg02m7ypzqvv46z06crwdxi2gyj";
1523 1553 };
1524 1554 meta = {
1525 1555 license = [ pkgs.lib.licenses.mit ];
1526 1556 };
1527 1557 };
1528 1558 "pytest-sugar" = super.buildPythonPackage {
1529 1559 name = "pytest-sugar-0.9.1";
1530 1560 doCheck = false;
1531 1561 propagatedBuildInputs = [
1532 1562 self."pytest"
1533 1563 self."termcolor"
1534 1564 ];
1535 1565 src = fetchurl {
1536 1566 url = "https://files.pythonhosted.org/packages/3e/6a/a3f909083079d03bde11d06ab23088886bbe25f2c97fbe4bb865e2bf05bc/pytest-sugar-0.9.1.tar.gz";
1537 1567 sha256 = "0b4av40dv30727m54v211r0nzwjp2ajkjgxix6j484qjmwpw935b";
1538 1568 };
1539 1569 meta = {
1540 1570 license = [ pkgs.lib.licenses.bsdOriginal ];
1541 1571 };
1542 1572 };
1543 1573 "pytest-timeout" = super.buildPythonPackage {
1544 1574 name = "pytest-timeout-1.3.2";
1545 1575 doCheck = false;
1546 1576 propagatedBuildInputs = [
1547 1577 self."pytest"
1548 1578 ];
1549 1579 src = fetchurl {
1550 1580 url = "https://files.pythonhosted.org/packages/8c/3e/1b6a319d12ae7baa3acb7c18ff2c8630a09471a0319d43535c683b4d03eb/pytest-timeout-1.3.2.tar.gz";
1551 1581 sha256 = "09wnmzvnls2mnsdz7x3c3sk2zdp6jl4dryvyj5i8hqz16q2zq5qi";
1552 1582 };
1553 1583 meta = {
1554 1584 license = [ pkgs.lib.licenses.mit { fullName = "DFSG approved"; } ];
1555 1585 };
1556 1586 };
1557 1587 "python-dateutil" = super.buildPythonPackage {
1558 1588 name = "python-dateutil-2.8.0";
1559 1589 doCheck = false;
1560 1590 propagatedBuildInputs = [
1561 1591 self."six"
1562 1592 ];
1563 1593 src = fetchurl {
1564 1594 url = "https://files.pythonhosted.org/packages/ad/99/5b2e99737edeb28c71bcbec5b5dda19d0d9ef3ca3e92e3e925e7c0bb364c/python-dateutil-2.8.0.tar.gz";
1565 1595 sha256 = "17nsfhy4xdz1khrfxa61vd7pmvd5z0wa3zb6v4gb4kfnykv0b668";
1566 1596 };
1567 1597 meta = {
1568 1598 license = [ pkgs.lib.licenses.bsdOriginal pkgs.lib.licenses.asl20 { fullName = "Dual License"; } ];
1569 1599 };
1570 1600 };
1571 1601 "python-editor" = super.buildPythonPackage {
1572 1602 name = "python-editor-1.0.4";
1573 1603 doCheck = false;
1574 1604 src = fetchurl {
1575 1605 url = "https://files.pythonhosted.org/packages/0a/85/78f4a216d28343a67b7397c99825cff336330893f00601443f7c7b2f2234/python-editor-1.0.4.tar.gz";
1576 1606 sha256 = "0yrjh8w72ivqxi4i7xsg5b1vz15x8fg51xra7c3bgfyxqnyadzai";
1577 1607 };
1578 1608 meta = {
1579 1609 license = [ pkgs.lib.licenses.asl20 { fullName = "Apache"; } ];
1580 1610 };
1581 1611 };
1582 1612 "python-ldap" = super.buildPythonPackage {
1583 1613 name = "python-ldap-3.1.0";
1584 1614 doCheck = false;
1585 1615 propagatedBuildInputs = [
1586 1616 self."pyasn1"
1587 1617 self."pyasn1-modules"
1588 1618 ];
1589 1619 src = fetchurl {
1590 1620 url = "https://files.pythonhosted.org/packages/7f/1c/28d721dff2fcd2fef9d55b40df63a00be26ec8a11e8c6fc612ae642f9cfd/python-ldap-3.1.0.tar.gz";
1591 1621 sha256 = "1i97nwfnraylyn0myxlf3vciicrf5h6fymrcff9c00k581wmx5s1";
1592 1622 };
1593 1623 meta = {
1594 1624 license = [ pkgs.lib.licenses.psfl ];
1595 1625 };
1596 1626 };
1597 1627 "python-memcached" = super.buildPythonPackage {
1598 1628 name = "python-memcached-1.59";
1599 1629 doCheck = false;
1600 1630 propagatedBuildInputs = [
1601 1631 self."six"
1602 1632 ];
1603 1633 src = fetchurl {
1604 1634 url = "https://files.pythonhosted.org/packages/90/59/5faf6e3cd8a568dd4f737ddae4f2e54204fd8c51f90bf8df99aca6c22318/python-memcached-1.59.tar.gz";
1605 1635 sha256 = "0kvyapavbirk2x3n1jx4yb9nyigrj1s3x15nm3qhpvhkpqvqdqm2";
1606 1636 };
1607 1637 meta = {
1608 1638 license = [ pkgs.lib.licenses.psfl ];
1609 1639 };
1610 1640 };
1611 1641 "python-pam" = super.buildPythonPackage {
1612 1642 name = "python-pam-1.8.4";
1613 1643 doCheck = false;
1614 1644 src = fetchurl {
1615 1645 url = "https://files.pythonhosted.org/packages/01/16/544d01cae9f28e0292dbd092b6b8b0bf222b528f362ee768a5bed2140111/python-pam-1.8.4.tar.gz";
1616 1646 sha256 = "16whhc0vr7gxsbzvsnq65nq8fs3wwmx755cavm8kkczdkz4djmn8";
1617 1647 };
1618 1648 meta = {
1619 1649 license = [ { fullName = "License :: OSI Approved :: MIT License"; } pkgs.lib.licenses.mit ];
1620 1650 };
1621 1651 };
1622 1652 "python-saml" = super.buildPythonPackage {
1623 1653 name = "python-saml-2.4.2";
1624 1654 doCheck = false;
1625 1655 propagatedBuildInputs = [
1626 1656 self."dm.xmlsec.binding"
1627 1657 self."isodate"
1628 1658 self."defusedxml"
1629 1659 ];
1630 1660 src = fetchurl {
1631 1661 url = "https://files.pythonhosted.org/packages/79/a8/a6611017e0883102fd5e2b73c9d90691b8134e38247c04ee1531d3dc647c/python-saml-2.4.2.tar.gz";
1632 1662 sha256 = "0dls4hwvf13yg7x5yfjrghbywg8g38vn5vr0rsf70hli3ydbfm43";
1633 1663 };
1634 1664 meta = {
1635 1665 license = [ pkgs.lib.licenses.mit ];
1636 1666 };
1637 1667 };
1638 1668 "pytz" = super.buildPythonPackage {
1639 name = "pytz-2018.4";
1669 name = "pytz-2019.2";
1640 1670 doCheck = false;
1641 1671 src = fetchurl {
1642 url = "https://files.pythonhosted.org/packages/10/76/52efda4ef98e7544321fd8d5d512e11739c1df18b0649551aeccfb1c8376/pytz-2018.4.tar.gz";
1643 sha256 = "0jgpqx3kk2rhv81j1izjxvmx8d0x7hzs1857pgqnixic5wq2ar60";
1672 url = "https://files.pythonhosted.org/packages/27/c0/fbd352ca76050952a03db776d241959d5a2ee1abddfeb9e2a53fdb489be4/pytz-2019.2.tar.gz";
1673 sha256 = "0ckb27hhjc8i8gcdvk4d9avld62b7k52yjijc60s2m3y8cpb7h16";
1644 1674 };
1645 1675 meta = {
1646 1676 license = [ pkgs.lib.licenses.mit ];
1647 1677 };
1648 1678 };
1649 1679 "pyzmq" = super.buildPythonPackage {
1650 1680 name = "pyzmq-14.6.0";
1651 1681 doCheck = false;
1652 1682 src = fetchurl {
1653 1683 url = "https://files.pythonhosted.org/packages/8a/3b/5463d5a9d712cd8bbdac335daece0d69f6a6792da4e3dd89956c0db4e4e6/pyzmq-14.6.0.tar.gz";
1654 1684 sha256 = "1frmbjykvhmdg64g7sn20c9fpamrsfxwci1nhhg8q7jgz5pq0ikp";
1655 1685 };
1656 1686 meta = {
1657 1687 license = [ pkgs.lib.licenses.bsdOriginal { fullName = "LGPL+BSD"; } { fullName = "GNU Library or Lesser General Public License (LGPL)"; } ];
1658 1688 };
1659 1689 };
1660 1690 "redis" = super.buildPythonPackage {
1661 1691 name = "redis-3.3.8";
1662 1692 doCheck = false;
1663 1693 src = fetchurl {
1664 1694 url = "https://files.pythonhosted.org/packages/d7/e9/549305f1c2480f8c24abadfaa71c20967cc3269769073b59960e9a566072/redis-3.3.8.tar.gz";
1665 1695 sha256 = "0fyxzqax7lcwzwhvnz0i0q6v62hxyv1mv52ywx3bpff9a2vjz8lq";
1666 1696 };
1667 1697 meta = {
1668 1698 license = [ pkgs.lib.licenses.mit ];
1669 1699 };
1670 1700 };
1671 1701 "repoze.lru" = super.buildPythonPackage {
1672 1702 name = "repoze.lru-0.7";
1673 1703 doCheck = false;
1674 1704 src = fetchurl {
1675 1705 url = "https://files.pythonhosted.org/packages/12/bc/595a77c4b5e204847fdf19268314ef59c85193a9dc9f83630fc459c0fee5/repoze.lru-0.7.tar.gz";
1676 1706 sha256 = "0xzz1aw2smy8hdszrq8yhnklx6w1r1mf55061kalw3iq35gafa84";
1677 1707 };
1678 1708 meta = {
1679 1709 license = [ { fullName = "Repoze Public License"; } { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1680 1710 };
1681 1711 };
1682 1712 "repoze.sendmail" = super.buildPythonPackage {
1683 1713 name = "repoze.sendmail-4.4.1";
1684 1714 doCheck = false;
1685 1715 propagatedBuildInputs = [
1686 1716 self."setuptools"
1687 1717 self."zope.interface"
1688 1718 self."transaction"
1689 1719 ];
1690 1720 src = fetchurl {
1691 1721 url = "https://files.pythonhosted.org/packages/12/4e/8ef1fd5c42765d712427b9c391419a77bd48877886d2cbc5e9f23c8cad9b/repoze.sendmail-4.4.1.tar.gz";
1692 1722 sha256 = "096ln02jr2afk7ab9j2czxqv2ryqq7m86ah572nqplx52iws73ks";
1693 1723 };
1694 1724 meta = {
1695 1725 license = [ pkgs.lib.licenses.zpl21 ];
1696 1726 };
1697 1727 };
1698 1728 "requests" = super.buildPythonPackage {
1699 1729 name = "requests-2.9.1";
1700 1730 doCheck = false;
1701 1731 src = fetchurl {
1702 1732 url = "https://files.pythonhosted.org/packages/f9/6d/07c44fb1ebe04d069459a189e7dab9e4abfe9432adcd4477367c25332748/requests-2.9.1.tar.gz";
1703 1733 sha256 = "0zsqrzlybf25xscgi7ja4s48y2abf9wvjkn47wh984qgs1fq2xy5";
1704 1734 };
1705 1735 meta = {
1706 1736 license = [ pkgs.lib.licenses.asl20 ];
1707 1737 };
1708 1738 };
1709 1739 "rhodecode-enterprise-ce" = super.buildPythonPackage {
1710 1740 name = "rhodecode-enterprise-ce-4.18.0";
1711 1741 buildInputs = [
1712 1742 self."pytest"
1713 1743 self."py"
1714 1744 self."pytest-cov"
1715 1745 self."pytest-sugar"
1716 1746 self."pytest-runner"
1717 1747 self."pytest-profiling"
1718 1748 self."pytest-timeout"
1719 1749 self."gprof2dot"
1720 1750 self."mock"
1721 1751 self."cov-core"
1722 1752 self."coverage"
1723 1753 self."webtest"
1724 1754 self."beautifulsoup4"
1725 1755 self."configobj"
1726 1756 ];
1727 1757 doCheck = true;
1728 1758 propagatedBuildInputs = [
1729 1759 self."amqp"
1730 1760 self."babel"
1731 1761 self."beaker"
1732 1762 self."bleach"
1733 1763 self."celery"
1734 1764 self."channelstream"
1735 1765 self."click"
1736 1766 self."colander"
1737 1767 self."configobj"
1738 1768 self."cssselect"
1739 1769 self."cryptography"
1740 1770 self."decorator"
1741 1771 self."deform"
1742 1772 self."docutils"
1743 1773 self."dogpile.cache"
1744 1774 self."dogpile.core"
1745 1775 self."formencode"
1746 1776 self."future"
1747 1777 self."futures"
1748 1778 self."infrae.cache"
1749 1779 self."iso8601"
1750 1780 self."itsdangerous"
1751 1781 self."kombu"
1752 1782 self."lxml"
1753 1783 self."mako"
1754 1784 self."markdown"
1755 1785 self."markupsafe"
1756 1786 self."msgpack-python"
1757 1787 self."pyotp"
1758 1788 self."packaging"
1759 1789 self."pathlib2"
1760 1790 self."paste"
1761 1791 self."pastedeploy"
1762 1792 self."pastescript"
1763 1793 self."peppercorn"
1764 1794 self."psutil"
1765 1795 self."py-bcrypt"
1766 1796 self."pycurl"
1767 1797 self."pycrypto"
1768 1798 self."pygments"
1769 1799 self."pyparsing"
1770 1800 self."pyramid-debugtoolbar"
1771 1801 self."pyramid-mako"
1772 1802 self."pyramid"
1773 1803 self."pyramid-mailer"
1774 1804 self."python-dateutil"
1775 1805 self."python-ldap"
1776 1806 self."python-memcached"
1777 1807 self."python-pam"
1778 1808 self."python-saml"
1779 1809 self."pytz"
1780 1810 self."tzlocal"
1781 1811 self."pyzmq"
1782 1812 self."py-gfm"
1783 1813 self."redis"
1784 1814 self."repoze.lru"
1785 1815 self."requests"
1786 1816 self."routes"
1787 1817 self."simplejson"
1788 1818 self."six"
1789 1819 self."sqlalchemy"
1790 1820 self."sshpubkeys"
1791 1821 self."subprocess32"
1792 1822 self."supervisor"
1793 1823 self."translationstring"
1794 1824 self."urllib3"
1795 1825 self."urlobject"
1796 1826 self."venusian"
1797 1827 self."weberror"
1798 1828 self."webhelpers2"
1799 1829 self."webhelpers"
1800 1830 self."webob"
1801 1831 self."whoosh"
1802 1832 self."wsgiref"
1803 1833 self."zope.cachedescriptors"
1804 1834 self."zope.deprecation"
1805 1835 self."zope.event"
1806 1836 self."zope.interface"
1807 1837 self."mysql-python"
1808 1838 self."pymysql"
1809 1839 self."pysqlite"
1810 1840 self."psycopg2"
1811 1841 self."nbconvert"
1812 1842 self."nbformat"
1813 1843 self."jupyter-client"
1814 1844 self."alembic"
1815 1845 self."invoke"
1816 1846 self."bumpversion"
1817 1847 self."gevent"
1818 1848 self."greenlet"
1819 1849 self."gunicorn"
1820 1850 self."waitress"
1821 1851 self."ipdb"
1822 1852 self."ipython"
1823 1853 self."rhodecode-tools"
1824 1854 self."appenlight-client"
1825 1855 self."pytest"
1826 1856 self."py"
1827 1857 self."pytest-cov"
1828 1858 self."pytest-sugar"
1829 1859 self."pytest-runner"
1830 1860 self."pytest-profiling"
1831 1861 self."pytest-timeout"
1832 1862 self."gprof2dot"
1833 1863 self."mock"
1834 1864 self."cov-core"
1835 1865 self."coverage"
1836 1866 self."webtest"
1837 1867 self."beautifulsoup4"
1838 1868 ];
1839 1869 src = ./.;
1840 1870 meta = {
1841 1871 license = [ { fullName = "Affero GNU General Public License v3 or later (AGPLv3+)"; } { fullName = "AGPLv3, and Commercial License"; } ];
1842 1872 };
1843 1873 };
1844 1874 "rhodecode-tools" = super.buildPythonPackage {
1845 1875 name = "rhodecode-tools-1.2.1";
1846 1876 doCheck = false;
1847 1877 propagatedBuildInputs = [
1848 1878 self."click"
1849 1879 self."future"
1850 1880 self."six"
1851 1881 self."mako"
1852 1882 self."markupsafe"
1853 1883 self."requests"
1854 1884 self."urllib3"
1855 1885 self."whoosh"
1856 1886 self."elasticsearch"
1857 1887 self."elasticsearch-dsl"
1858 1888 self."elasticsearch2"
1859 1889 self."elasticsearch1-dsl"
1860 1890 ];
1861 1891 src = fetchurl {
1862 1892 url = "https://code.rhodecode.com/rhodecode-tools-ce/artifacts/download/0-10ac93f4-bb7d-4b97-baea-68110743dd5a.tar.gz?md5=962dc77c06aceee62282b98d33149661";
1863 1893 sha256 = "1vfhgf46inbx7jvlfx4fdzh3vz7lh37r291gzb5hx447pfm3qllg";
1864 1894 };
1865 1895 meta = {
1866 1896 license = [ { fullName = "Apache 2.0 and Proprietary"; } ];
1867 1897 };
1868 1898 };
1869 1899 "routes" = super.buildPythonPackage {
1870 1900 name = "routes-2.4.1";
1871 1901 doCheck = false;
1872 1902 propagatedBuildInputs = [
1873 1903 self."six"
1874 1904 self."repoze.lru"
1875 1905 ];
1876 1906 src = fetchurl {
1877 1907 url = "https://files.pythonhosted.org/packages/33/38/ea827837e68d9c7dde4cff7ec122a93c319f0effc08ce92a17095576603f/Routes-2.4.1.tar.gz";
1878 1908 sha256 = "1zamff3m0kc4vyfniyhxpkkcqv1rrgnmh37ykxv34nna1ws47vi6";
1879 1909 };
1880 1910 meta = {
1881 1911 license = [ pkgs.lib.licenses.mit ];
1882 1912 };
1883 1913 };
1884 1914 "scandir" = super.buildPythonPackage {
1885 1915 name = "scandir-1.10.0";
1886 1916 doCheck = false;
1887 1917 src = fetchurl {
1888 1918 url = "https://files.pythonhosted.org/packages/df/f5/9c052db7bd54d0cbf1bc0bb6554362bba1012d03e5888950a4f5c5dadc4e/scandir-1.10.0.tar.gz";
1889 1919 sha256 = "1bkqwmf056pkchf05ywbnf659wqlp6lljcdb0y88wr9f0vv32ijd";
1890 1920 };
1891 1921 meta = {
1892 1922 license = [ pkgs.lib.licenses.bsdOriginal { fullName = "New BSD License"; } ];
1893 1923 };
1894 1924 };
1895 1925 "setproctitle" = super.buildPythonPackage {
1896 1926 name = "setproctitle-1.1.10";
1897 1927 doCheck = false;
1898 1928 src = fetchurl {
1899 1929 url = "https://files.pythonhosted.org/packages/5a/0d/dc0d2234aacba6cf1a729964383e3452c52096dc695581248b548786f2b3/setproctitle-1.1.10.tar.gz";
1900 1930 sha256 = "163kplw9dcrw0lffq1bvli5yws3rngpnvrxrzdw89pbphjjvg0v2";
1901 1931 };
1902 1932 meta = {
1903 1933 license = [ pkgs.lib.licenses.bsdOriginal ];
1904 1934 };
1905 1935 };
1906 1936 "setuptools" = super.buildPythonPackage {
1907 1937 name = "setuptools-41.2.0";
1908 1938 doCheck = false;
1909 1939 src = fetchurl {
1910 1940 url = "https://files.pythonhosted.org/packages/d9/ca/7279974e489e8b65003fe618a1a741d6350227fa2bf48d16be76c7422423/setuptools-41.2.0.zip";
1911 1941 sha256 = "04k0dp9msmlv3g3zx7f5p8wdjr6hdf5c0bgmczlc4yncwyx6pf36";
1912 1942 };
1913 1943 meta = {
1914 1944 license = [ pkgs.lib.licenses.mit ];
1915 1945 };
1916 1946 };
1917 1947 "simplegeneric" = super.buildPythonPackage {
1918 1948 name = "simplegeneric-0.8.1";
1919 1949 doCheck = false;
1920 1950 src = fetchurl {
1921 1951 url = "https://files.pythonhosted.org/packages/3d/57/4d9c9e3ae9a255cd4e1106bb57e24056d3d0709fc01b2e3e345898e49d5b/simplegeneric-0.8.1.zip";
1922 1952 sha256 = "0wwi1c6md4vkbcsfsf8dklf3vr4mcdj4mpxkanwgb6jb1432x5yw";
1923 1953 };
1924 1954 meta = {
1925 1955 license = [ pkgs.lib.licenses.zpl21 ];
1926 1956 };
1927 1957 };
1928 1958 "simplejson" = super.buildPythonPackage {
1929 1959 name = "simplejson-3.16.0";
1930 1960 doCheck = false;
1931 1961 src = fetchurl {
1932 1962 url = "https://files.pythonhosted.org/packages/e3/24/c35fb1c1c315fc0fffe61ea00d3f88e85469004713dab488dee4f35b0aff/simplejson-3.16.0.tar.gz";
1933 1963 sha256 = "19cws1syk8jzq2pw43878dv6fjkb0ifvjpx0i9aajix6kc9jkwxi";
1934 1964 };
1935 1965 meta = {
1936 1966 license = [ { fullName = "Academic Free License (AFL)"; } pkgs.lib.licenses.mit ];
1937 1967 };
1938 1968 };
1939 1969 "six" = super.buildPythonPackage {
1940 1970 name = "six-1.11.0";
1941 1971 doCheck = false;
1942 1972 src = fetchurl {
1943 1973 url = "https://files.pythonhosted.org/packages/16/d8/bc6316cf98419719bd59c91742194c111b6f2e85abac88e496adefaf7afe/six-1.11.0.tar.gz";
1944 1974 sha256 = "1scqzwc51c875z23phj48gircqjgnn3af8zy2izjwmnlxrxsgs3h";
1945 1975 };
1946 1976 meta = {
1947 1977 license = [ pkgs.lib.licenses.mit ];
1948 1978 };
1949 1979 };
1950 1980 "sqlalchemy" = super.buildPythonPackage {
1951 1981 name = "sqlalchemy-1.1.18";
1952 1982 doCheck = false;
1953 1983 src = fetchurl {
1954 1984 url = "https://files.pythonhosted.org/packages/cc/4d/96d93ff77cd67aca7618e402191eee3490d8f5f245d6ab7622d35fe504f4/SQLAlchemy-1.1.18.tar.gz";
1955 1985 sha256 = "1ab4ysip6irajfbxl9wy27kv76miaz8h6759hfx92499z4dcf3lb";
1956 1986 };
1957 1987 meta = {
1958 1988 license = [ pkgs.lib.licenses.mit ];
1959 1989 };
1960 1990 };
1961 1991 "sshpubkeys" = super.buildPythonPackage {
1962 1992 name = "sshpubkeys-3.1.0";
1963 1993 doCheck = false;
1964 1994 propagatedBuildInputs = [
1965 1995 self."cryptography"
1966 1996 self."ecdsa"
1967 1997 ];
1968 1998 src = fetchurl {
1969 1999 url = "https://files.pythonhosted.org/packages/00/23/f7508a12007c96861c3da811992f14283d79c819d71a217b3e12d5196649/sshpubkeys-3.1.0.tar.gz";
1970 2000 sha256 = "105g2li04nm1hb15a2y6hm9m9k7fbrkd5l3gy12w3kgcmsf3k25k";
1971 2001 };
1972 2002 meta = {
1973 2003 license = [ pkgs.lib.licenses.bsdOriginal ];
1974 2004 };
1975 2005 };
1976 2006 "subprocess32" = super.buildPythonPackage {
1977 2007 name = "subprocess32-3.5.4";
1978 2008 doCheck = false;
1979 2009 src = fetchurl {
1980 2010 url = "https://files.pythonhosted.org/packages/32/c8/564be4d12629b912ea431f1a50eb8b3b9d00f1a0b1ceff17f266be190007/subprocess32-3.5.4.tar.gz";
1981 2011 sha256 = "17f7mvwx2271s1wrl0qac3wjqqnrqag866zs3qc8v5wp0k43fagb";
1982 2012 };
1983 2013 meta = {
1984 2014 license = [ pkgs.lib.licenses.psfl ];
1985 2015 };
1986 2016 };
1987 2017 "supervisor" = super.buildPythonPackage {
1988 2018 name = "supervisor-4.0.3";
1989 2019 doCheck = false;
1990 2020 propagatedBuildInputs = [
1991 2021 self."meld3"
1992 2022 ];
1993 2023 src = fetchurl {
1994 2024 url = "https://files.pythonhosted.org/packages/97/48/f38bf70bd9282d1a18d591616557cc1a77a1c627d57dff66ead65c891dc8/supervisor-4.0.3.tar.gz";
1995 2025 sha256 = "17hla7mx6w5m5jzkkjxgqa8wpswqmfhbhf49f692hw78fg0ans7p";
1996 2026 };
1997 2027 meta = {
1998 2028 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1999 2029 };
2000 2030 };
2001 2031 "tempita" = super.buildPythonPackage {
2002 2032 name = "tempita-0.5.2";
2003 2033 doCheck = false;
2004 2034 src = fetchurl {
2005 2035 url = "https://files.pythonhosted.org/packages/56/c8/8ed6eee83dbddf7b0fc64dd5d4454bc05e6ccaafff47991f73f2894d9ff4/Tempita-0.5.2.tar.gz";
2006 2036 sha256 = "177wwq45slfyajd8csy477bmdmzipyw0dm7i85k3akb7m85wzkna";
2007 2037 };
2008 2038 meta = {
2009 2039 license = [ pkgs.lib.licenses.mit ];
2010 2040 };
2011 2041 };
2012 2042 "termcolor" = super.buildPythonPackage {
2013 2043 name = "termcolor-1.1.0";
2014 2044 doCheck = false;
2015 2045 src = fetchurl {
2016 2046 url = "https://files.pythonhosted.org/packages/8a/48/a76be51647d0eb9f10e2a4511bf3ffb8cc1e6b14e9e4fab46173aa79f981/termcolor-1.1.0.tar.gz";
2017 2047 sha256 = "0fv1vq14rpqwgazxg4981904lfyp84mnammw7y046491cv76jv8x";
2018 2048 };
2019 2049 meta = {
2020 2050 license = [ pkgs.lib.licenses.mit ];
2021 2051 };
2022 2052 };
2023 2053 "testpath" = super.buildPythonPackage {
2024 2054 name = "testpath-0.4.2";
2025 2055 doCheck = false;
2026 2056 src = fetchurl {
2027 2057 url = "https://files.pythonhosted.org/packages/06/30/9a7e917066d851d8b4117e85794b5f14516419ea714a8a2681ec6aa8a981/testpath-0.4.2.tar.gz";
2028 2058 sha256 = "1y40hywscnnyb734pnzm55nd8r8kp1072bjxbil83gcd53cv755n";
2029 2059 };
2030 2060 meta = {
2031 2061 license = [ ];
2032 2062 };
2033 2063 };
2034 2064 "traitlets" = super.buildPythonPackage {
2035 2065 name = "traitlets-4.3.2";
2036 2066 doCheck = false;
2037 2067 propagatedBuildInputs = [
2038 2068 self."ipython-genutils"
2039 2069 self."six"
2040 2070 self."decorator"
2041 2071 self."enum34"
2042 2072 ];
2043 2073 src = fetchurl {
2044 2074 url = "https://files.pythonhosted.org/packages/a5/98/7f5ef2fe9e9e071813aaf9cb91d1a732e0a68b6c44a32b38cb8e14c3f069/traitlets-4.3.2.tar.gz";
2045 2075 sha256 = "0dbq7sx26xqz5ixs711k5nc88p8a0nqyz6162pwks5dpcz9d4jww";
2046 2076 };
2047 2077 meta = {
2048 2078 license = [ pkgs.lib.licenses.bsdOriginal ];
2049 2079 };
2050 2080 };
2051 2081 "transaction" = super.buildPythonPackage {
2052 2082 name = "transaction-2.4.0";
2053 2083 doCheck = false;
2054 2084 propagatedBuildInputs = [
2055 2085 self."zope.interface"
2056 2086 ];
2057 2087 src = fetchurl {
2058 2088 url = "https://files.pythonhosted.org/packages/9d/7d/0e8af0d059e052b9dcf2bb5a08aad20ae3e238746bdd3f8701a60969b363/transaction-2.4.0.tar.gz";
2059 2089 sha256 = "17wz1y524ca07vr03yddy8dv0gbscs06dbdywmllxv5rc725jq3j";
2060 2090 };
2061 2091 meta = {
2062 2092 license = [ pkgs.lib.licenses.zpl21 ];
2063 2093 };
2064 2094 };
2065 2095 "translationstring" = super.buildPythonPackage {
2066 2096 name = "translationstring-1.3";
2067 2097 doCheck = false;
2068 2098 src = fetchurl {
2069 2099 url = "https://files.pythonhosted.org/packages/5e/eb/bee578cc150b44c653b63f5ebe258b5d0d812ddac12497e5f80fcad5d0b4/translationstring-1.3.tar.gz";
2070 2100 sha256 = "0bdpcnd9pv0131dl08h4zbcwmgc45lyvq3pa224xwan5b3x4rr2f";
2071 2101 };
2072 2102 meta = {
2073 2103 license = [ { fullName = "BSD-like (http://repoze.org/license.html)"; } ];
2074 2104 };
2075 2105 };
2076 2106 "tzlocal" = super.buildPythonPackage {
2077 2107 name = "tzlocal-1.5.1";
2078 2108 doCheck = false;
2079 2109 propagatedBuildInputs = [
2080 2110 self."pytz"
2081 2111 ];
2082 2112 src = fetchurl {
2083 2113 url = "https://files.pythonhosted.org/packages/cb/89/e3687d3ed99bc882793f82634e9824e62499fdfdc4b1ae39e211c5b05017/tzlocal-1.5.1.tar.gz";
2084 2114 sha256 = "0kiciwiqx0bv0fbc913idxibc4ygg4cb7f8rcpd9ij2shi4bigjf";
2085 2115 };
2086 2116 meta = {
2087 2117 license = [ pkgs.lib.licenses.mit ];
2088 2118 };
2089 2119 };
2090 2120 "urllib3" = super.buildPythonPackage {
2091 2121 name = "urllib3-1.24.1";
2092 2122 doCheck = false;
2093 2123 src = fetchurl {
2094 2124 url = "https://files.pythonhosted.org/packages/b1/53/37d82ab391393565f2f831b8eedbffd57db5a718216f82f1a8b4d381a1c1/urllib3-1.24.1.tar.gz";
2095 2125 sha256 = "08lwd9f3hqznyf32vnzwvp87pchx062nkbgyrf67rwlkgj0jk5fy";
2096 2126 };
2097 2127 meta = {
2098 2128 license = [ pkgs.lib.licenses.mit ];
2099 2129 };
2100 2130 };
2101 2131 "urlobject" = super.buildPythonPackage {
2102 2132 name = "urlobject-2.4.3";
2103 2133 doCheck = false;
2104 2134 src = fetchurl {
2105 2135 url = "https://files.pythonhosted.org/packages/e2/b8/1d0a916f4b34c4618846e6da0e4eeaa8fcb4a2f39e006434fe38acb74b34/URLObject-2.4.3.tar.gz";
2106 2136 sha256 = "1ahc8ficzfvr2avln71immfh4ls0zyv6cdaa5xmkdj5rd87f5cj7";
2107 2137 };
2108 2138 meta = {
2109 2139 license = [ pkgs.lib.licenses.publicDomain ];
2110 2140 };
2111 2141 };
2112 2142 "venusian" = super.buildPythonPackage {
2113 2143 name = "venusian-1.2.0";
2114 2144 doCheck = false;
2115 2145 src = fetchurl {
2116 2146 url = "https://files.pythonhosted.org/packages/7e/6f/40a9d43ac77cb51cb62be5b5662d170f43f8037bdc4eab56336c4ca92bb7/venusian-1.2.0.tar.gz";
2117 2147 sha256 = "0ghyx66g8ikx9nx1mnwqvdcqm11i1vlq0hnvwl50s48bp22q5v34";
2118 2148 };
2119 2149 meta = {
2120 2150 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
2121 2151 };
2122 2152 };
2123 2153 "vine" = super.buildPythonPackage {
2124 2154 name = "vine-1.3.0";
2125 2155 doCheck = false;
2126 2156 src = fetchurl {
2127 2157 url = "https://files.pythonhosted.org/packages/1c/e1/79fb8046e607dd6c2ad05c9b8ebac9d0bd31d086a08f02699e96fc5b3046/vine-1.3.0.tar.gz";
2128 2158 sha256 = "11ydsbhl1vabndc2r979dv61s6j2b0giq6dgvryifvq1m7bycghk";
2129 2159 };
2130 2160 meta = {
2131 2161 license = [ pkgs.lib.licenses.bsdOriginal ];
2132 2162 };
2133 2163 };
2134 2164 "waitress" = super.buildPythonPackage {
2135 2165 name = "waitress-1.3.0";
2136 2166 doCheck = false;
2137 2167 src = fetchurl {
2138 2168 url = "https://files.pythonhosted.org/packages/43/50/9890471320d5ad22761ae46661cf745f487b1c8c4ec49352b99e1078b970/waitress-1.3.0.tar.gz";
2139 2169 sha256 = "09j5dzbbcxib7vdskhx39s1qsydlr4n2p2png71d7mjnr9pnwajf";
2140 2170 };
2141 2171 meta = {
2142 2172 license = [ pkgs.lib.licenses.zpl21 ];
2143 2173 };
2144 2174 };
2145 2175 "wcwidth" = super.buildPythonPackage {
2146 2176 name = "wcwidth-0.1.7";
2147 2177 doCheck = false;
2148 2178 src = fetchurl {
2149 2179 url = "https://files.pythonhosted.org/packages/55/11/e4a2bb08bb450fdbd42cc709dd40de4ed2c472cf0ccb9e64af22279c5495/wcwidth-0.1.7.tar.gz";
2150 2180 sha256 = "0pn6dflzm609m4r3i8ik5ni9ijjbb5fa3vg1n7hn6vkd49r77wrx";
2151 2181 };
2152 2182 meta = {
2153 2183 license = [ pkgs.lib.licenses.mit ];
2154 2184 };
2155 2185 };
2156 2186 "webencodings" = super.buildPythonPackage {
2157 2187 name = "webencodings-0.5.1";
2158 2188 doCheck = false;
2159 2189 src = fetchurl {
2160 2190 url = "https://files.pythonhosted.org/packages/0b/02/ae6ceac1baeda530866a85075641cec12989bd8d31af6d5ab4a3e8c92f47/webencodings-0.5.1.tar.gz";
2161 2191 sha256 = "08qrgrc4hrximb2gqnl69g01s93rhf2842jfxdjljc1dbwj1qsmk";
2162 2192 };
2163 2193 meta = {
2164 2194 license = [ pkgs.lib.licenses.bsdOriginal ];
2165 2195 };
2166 2196 };
2167 2197 "weberror" = super.buildPythonPackage {
2168 2198 name = "weberror-0.10.3";
2169 2199 doCheck = false;
2170 2200 propagatedBuildInputs = [
2171 2201 self."webob"
2172 2202 self."tempita"
2173 2203 self."pygments"
2174 2204 self."paste"
2175 2205 ];
2176 2206 src = fetchurl {
2177 2207 url = "https://files.pythonhosted.org/packages/35/76/e7e5c2ce7e9c7f31b54c1ff295a495886d1279a002557d74dd8957346a79/WebError-0.10.3.tar.gz";
2178 2208 sha256 = "0frg4kvycqpj5bi8asfqfs6bxsr2cvjvb6b56c4d1ai1z57kbjx6";
2179 2209 };
2180 2210 meta = {
2181 2211 license = [ pkgs.lib.licenses.mit ];
2182 2212 };
2183 2213 };
2184 2214 "webhelpers" = super.buildPythonPackage {
2185 2215 name = "webhelpers-1.3";
2186 2216 doCheck = false;
2187 2217 propagatedBuildInputs = [
2188 2218 self."markupsafe"
2189 2219 ];
2190 2220 src = fetchurl {
2191 2221 url = "https://files.pythonhosted.org/packages/ee/68/4d07672821d514184357f1552f2dad923324f597e722de3b016ca4f7844f/WebHelpers-1.3.tar.gz";
2192 2222 sha256 = "10x5i82qdkrvyw18gsybwggfhfpl869siaab89vnndi9x62g51pa";
2193 2223 };
2194 2224 meta = {
2195 2225 license = [ pkgs.lib.licenses.bsdOriginal ];
2196 2226 };
2197 2227 };
2198 2228 "webhelpers2" = super.buildPythonPackage {
2199 2229 name = "webhelpers2-2.0";
2200 2230 doCheck = false;
2201 2231 propagatedBuildInputs = [
2202 2232 self."markupsafe"
2203 2233 self."six"
2204 2234 ];
2205 2235 src = fetchurl {
2206 2236 url = "https://files.pythonhosted.org/packages/ff/30/56342c6ea522439e3662427c8d7b5e5b390dff4ff2dc92d8afcb8ab68b75/WebHelpers2-2.0.tar.gz";
2207 2237 sha256 = "0aphva1qmxh83n01p53f5fd43m4srzbnfbz5ajvbx9aj2aipwmcs";
2208 2238 };
2209 2239 meta = {
2210 2240 license = [ pkgs.lib.licenses.mit ];
2211 2241 };
2212 2242 };
2213 2243 "webob" = super.buildPythonPackage {
2214 2244 name = "webob-1.8.5";
2215 2245 doCheck = false;
2216 2246 src = fetchurl {
2217 2247 url = "https://files.pythonhosted.org/packages/9d/1a/0c89c070ee2829c934cb6c7082287c822e28236a4fcf90063e6be7c35532/WebOb-1.8.5.tar.gz";
2218 2248 sha256 = "11khpzaxc88q31v25ic330gsf56fwmbdc9b30br8mvp0fmwspah5";
2219 2249 };
2220 2250 meta = {
2221 2251 license = [ pkgs.lib.licenses.mit ];
2222 2252 };
2223 2253 };
2224 2254 "webtest" = super.buildPythonPackage {
2225 2255 name = "webtest-2.0.33";
2226 2256 doCheck = false;
2227 2257 propagatedBuildInputs = [
2228 2258 self."six"
2229 2259 self."webob"
2230 2260 self."waitress"
2231 2261 self."beautifulsoup4"
2232 2262 ];
2233 2263 src = fetchurl {
2234 2264 url = "https://files.pythonhosted.org/packages/a8/b0/ffc9413b637dbe26e291429bb0f6ed731e518d0cd03da28524a8fe2e8a8f/WebTest-2.0.33.tar.gz";
2235 2265 sha256 = "1l3z0cwqslsf4rcrhi2gr8kdfh74wn2dw76376i4g9i38gz8wd21";
2236 2266 };
2237 2267 meta = {
2238 2268 license = [ pkgs.lib.licenses.mit ];
2239 2269 };
2240 2270 };
2241 2271 "whoosh" = super.buildPythonPackage {
2242 2272 name = "whoosh-2.7.4";
2243 2273 doCheck = false;
2244 2274 src = fetchurl {
2245 2275 url = "https://files.pythonhosted.org/packages/25/2b/6beed2107b148edc1321da0d489afc4617b9ed317ef7b72d4993cad9b684/Whoosh-2.7.4.tar.gz";
2246 2276 sha256 = "10qsqdjpbc85fykc1vgcs8xwbgn4l2l52c8d83xf1q59pwyn79bw";
2247 2277 };
2248 2278 meta = {
2249 2279 license = [ pkgs.lib.licenses.bsdOriginal pkgs.lib.licenses.bsd2 ];
2250 2280 };
2251 2281 };
2252 2282 "ws4py" = super.buildPythonPackage {
2253 2283 name = "ws4py-0.5.1";
2254 2284 doCheck = false;
2255 2285 src = fetchurl {
2256 2286 url = "https://files.pythonhosted.org/packages/53/20/4019a739b2eefe9282d3822ef6a225250af964b117356971bd55e274193c/ws4py-0.5.1.tar.gz";
2257 2287 sha256 = "10slbbf2jm4hpr92jx7kh7mhf48sjl01v2w4d8z3f1p0ybbp7l19";
2258 2288 };
2259 2289 meta = {
2260 2290 license = [ pkgs.lib.licenses.bsdOriginal ];
2261 2291 };
2262 2292 };
2263 2293 "wsgiref" = super.buildPythonPackage {
2264 2294 name = "wsgiref-0.1.2";
2265 2295 doCheck = false;
2266 2296 src = fetchurl {
2267 2297 url = "https://files.pythonhosted.org/packages/41/9e/309259ce8dff8c596e8c26df86dbc4e848b9249fd36797fd60be456f03fc/wsgiref-0.1.2.zip";
2268 2298 sha256 = "0y8fyjmpq7vwwm4x732w97qbkw78rjwal5409k04cw4m03411rn7";
2269 2299 };
2270 2300 meta = {
2271 2301 license = [ { fullName = "PSF or ZPL"; } ];
2272 2302 };
2273 2303 };
2304 "zipp" = super.buildPythonPackage {
2305 name = "zipp-0.6.0";
2306 doCheck = false;
2307 propagatedBuildInputs = [
2308 self."more-itertools"
2309 ];
2310 src = fetchurl {
2311 url = "https://files.pythonhosted.org/packages/57/dd/585d728479d97d25aeeb9aa470d36a4ad8d0ba5610f84e14770128ce6ff7/zipp-0.6.0.tar.gz";
2312 sha256 = "13ndkf7vklw978a4gdl1yfvn8hch28429a0iam67sg4nrp5v261p";
2313 };
2314 meta = {
2315 license = [ pkgs.lib.licenses.mit ];
2316 };
2317 };
2274 2318 "zope.cachedescriptors" = super.buildPythonPackage {
2275 2319 name = "zope.cachedescriptors-4.3.1";
2276 2320 doCheck = false;
2277 2321 propagatedBuildInputs = [
2278 2322 self."setuptools"
2279 2323 ];
2280 2324 src = fetchurl {
2281 2325 url = "https://files.pythonhosted.org/packages/2f/89/ebe1890cc6d3291ebc935558fa764d5fffe571018dbbee200e9db78762cb/zope.cachedescriptors-4.3.1.tar.gz";
2282 2326 sha256 = "0jhr3m5p74c6r7k8iv0005b8bfsialih9d7zl5vx38rf5xq1lk8z";
2283 2327 };
2284 2328 meta = {
2285 2329 license = [ pkgs.lib.licenses.zpl21 ];
2286 2330 };
2287 2331 };
2288 2332 "zope.deprecation" = super.buildPythonPackage {
2289 2333 name = "zope.deprecation-4.4.0";
2290 2334 doCheck = false;
2291 2335 propagatedBuildInputs = [
2292 2336 self."setuptools"
2293 2337 ];
2294 2338 src = fetchurl {
2295 2339 url = "https://files.pythonhosted.org/packages/34/da/46e92d32d545dd067b9436279d84c339e8b16de2ca393d7b892bc1e1e9fd/zope.deprecation-4.4.0.tar.gz";
2296 2340 sha256 = "1pz2cv7gv9y1r3m0bdv7ks1alagmrn5msm5spwdzkb2by0w36i8d";
2297 2341 };
2298 2342 meta = {
2299 2343 license = [ pkgs.lib.licenses.zpl21 ];
2300 2344 };
2301 2345 };
2302 2346 "zope.event" = super.buildPythonPackage {
2303 2347 name = "zope.event-4.4";
2304 2348 doCheck = false;
2305 2349 propagatedBuildInputs = [
2306 2350 self."setuptools"
2307 2351 ];
2308 2352 src = fetchurl {
2309 2353 url = "https://files.pythonhosted.org/packages/4c/b2/51c0369adcf5be2334280eed230192ab3b03f81f8efda9ddea6f65cc7b32/zope.event-4.4.tar.gz";
2310 2354 sha256 = "1ksbc726av9xacml6jhcfyn828hlhb9xlddpx6fcvnlvmpmpvhk9";
2311 2355 };
2312 2356 meta = {
2313 2357 license = [ pkgs.lib.licenses.zpl21 ];
2314 2358 };
2315 2359 };
2316 2360 "zope.interface" = super.buildPythonPackage {
2317 2361 name = "zope.interface-4.6.0";
2318 2362 doCheck = false;
2319 2363 propagatedBuildInputs = [
2320 2364 self."setuptools"
2321 2365 ];
2322 2366 src = fetchurl {
2323 2367 url = "https://files.pythonhosted.org/packages/4e/d0/c9d16bd5b38de44a20c6dc5d5ed80a49626fafcb3db9f9efdc2a19026db6/zope.interface-4.6.0.tar.gz";
2324 2368 sha256 = "1rgh2x3rcl9r0v0499kf78xy86rnmanajf4ywmqb943wpk50sg8v";
2325 2369 };
2326 2370 meta = {
2327 2371 license = [ pkgs.lib.licenses.zpl21 ];
2328 2372 };
2329 2373 };
2330 2374
2331 2375 ### Test requirements
2332 2376
2333 2377
2334 2378 }
@@ -1,122 +1,122 b''
1 1 ## dependencies
2 2
3 amqp==2.3.1
3 amqp==2.5.1
4 4
5 5 babel==1.3
6 6 beaker==1.9.1
7 7 bleach==3.1.0
8 celery==4.1.1
8 celery==4.3.0
9 9 channelstream==0.5.2
10 10 click==7.0
11 11 colander==1.7.0
12 12 # our custom configobj
13 13 https://code.rhodecode.com/upstream/configobj/artifacts/download/0-012de99a-b1e1-4f64-a5c0-07a98a41b324.tar.gz?md5=6a513f51fe04b2c18cf84c1395a7c626#egg=configobj==5.0.6
14 14 cssselect==1.0.3
15 15 cryptography==2.6.1
16 16 decorator==4.1.2
17 17 deform==2.0.7
18 18 docutils==0.14.0
19 19 dogpile.cache==0.7.1
20 20 dogpile.core==0.4.1
21 21 formencode==1.2.4
22 22 future==0.14.3
23 23 futures==3.0.2
24 24 infrae.cache==1.0.1
25 25 iso8601==0.1.12
26 26 itsdangerous==0.24
27 kombu==4.2.1
27 kombu==4.6.4
28 28 lxml==4.2.5
29 29 mako==1.0.7
30 30 markdown==2.6.11
31 31 markupsafe==1.1.0
32 32 msgpack-python==0.5.6
33 33 pyotp==2.2.7
34 34 packaging==15.2
35 35 pathlib2==2.3.4
36 36 paste==3.0.8
37 37 pastedeploy==2.0.1
38 38 pastescript==3.1.0
39 39 peppercorn==0.6
40 40 psutil==5.5.1
41 41 py-bcrypt==0.4
42 42 pycurl==7.43.0.2
43 43 pycrypto==2.6.1
44 44 pygments==2.4.2
45 45 pyparsing==2.3.0
46 46 pyramid-debugtoolbar==4.5.0
47 47 pyramid-mako==1.0.2
48 48 pyramid==1.10.4
49 49 pyramid_mailer==0.15.1
50 50 python-dateutil
51 51 python-ldap==3.1.0
52 52 python-memcached==1.59
53 53 python-pam==1.8.4
54 54 python-saml==2.4.2
55 pytz==2018.4
55 pytz==2019.2
56 56 tzlocal==1.5.1
57 57 pyzmq==14.6.0
58 58 py-gfm==0.1.4
59 59 redis==3.3.8
60 60 repoze.lru==0.7
61 61 requests==2.9.1
62 62 routes==2.4.1
63 63 simplejson==3.16.0
64 64 six==1.11.0
65 65 sqlalchemy==1.1.18
66 66 sshpubkeys==3.1.0
67 67 subprocess32==3.5.4
68 68 supervisor==4.0.3
69 69 translationstring==1.3
70 70 urllib3==1.24.1
71 71 urlobject==2.4.3
72 72 venusian==1.2.0
73 73 weberror==0.10.3
74 74 webhelpers2==2.0
75 75 webhelpers==1.3
76 76 webob==1.8.5
77 77 whoosh==2.7.4
78 78 wsgiref==0.1.2
79 79 zope.cachedescriptors==4.3.1
80 80 zope.deprecation==4.4.0
81 81 zope.event==4.4.0
82 82 zope.interface==4.6.0
83 83
84 84 # DB drivers
85 85 mysql-python==1.2.5
86 86 pymysql==0.8.1
87 87 pysqlite==2.8.3
88 88 psycopg2==2.8.3
89 89
90 90 # IPYTHON RENDERING
91 91 # entrypoints backport, pypi version doesn't support egg installs
92 92 https://code.rhodecode.com/upstream/entrypoints/artifacts/download/0-8e9ee9e4-c4db-409c-b07e-81568fd1832d.tar.gz?md5=3a027b8ff1d257b91fe257de6c43357d#egg=entrypoints==0.2.2.rhodecode-upstream1
93 93 nbconvert==5.3.1
94 94 nbformat==4.4.0
95 95 jupyter_client==5.0.0
96 96
97 97 ## cli tools
98 98 alembic==1.0.10
99 99 invoke==0.13.0
100 100 bumpversion==0.5.3
101 101
102 102 ## http servers
103 103 gevent==1.4.0
104 104 greenlet==0.4.15
105 105 gunicorn==19.9.0
106 106 waitress==1.3.0
107 107
108 108 ## debug
109 109 ipdb==0.12.0
110 110 ipython==5.1.0
111 111
112 112 ## rhodecode-tools, special case
113 113 https://code.rhodecode.com/rhodecode-tools-ce/artifacts/download/0-10ac93f4-bb7d-4b97-baea-68110743dd5a.tar.gz?md5=962dc77c06aceee62282b98d33149661#egg=rhodecode-tools==1.2.1
114 114
115 115 ## appenlight
116 116 appenlight-client==0.6.26
117 117
118 118 ## test related requirements
119 119 -r requirements_test.txt
120 120
121 121 ## uncomment to add the debug libraries
122 122 #-r requirements_debug.txt
@@ -1,19 +1,19 b''
1 1 # contains not directly required libraries we want to pin the version.
2 2
3 3 atomicwrites==1.2.1
4 4 attrs==18.2.0
5 billiard==3.5.0.3
5 billiard==3.6.1.0
6 6 chameleon==2.24
7 7 cffi==1.12.2
8 8 ecdsa==0.13.2
9 9 hupper==1.6.1
10 10 gnureadline==6.3.8
11 11 jinja2==2.9.6
12 12 jsonschema==2.6.0
13 13 pyramid-jinja2==2.7
14 14 pluggy==0.11.0
15 15 setproctitle==1.1.10
16 16 scandir==1.10.0
17 17 tempita==0.5.2
18 18 vine==1.3.0
19 19 configparser==3.7.4
General Comments 0
You need to be logged in to leave comments. Login now