local pypi server (custom packages and auto-mirroring of pypi)

Overview

localshop

Latest Version https://travis-ci.org/mvantellingen/localshop.svg?branch=master http://codecov.io/github/mvantellingen/localshop/coverage.svg?branch=master

A PyPI server which automatically proxies and mirrors PyPI packages based upon packages requested. It has support for multiple indexes and team based access and also supports the uploading of local (private) packages.

The full documentation is available on Read The Docs

Getting started

When you want to host it on AWS with the Azure AD oauth2 server use:

docker run
-e DATABASE_URL=postgresql://user:password@host/database -e SECRET_KEY=<secret-key-for-django> -e LOCALSHOP_FILE_STORAGE=storages.backends.s3boto.S3BotoStorage -e LOCALSHOP_FILE_BUCKET_NAME=<your-aws-s3-bucket> -e OAUTH2_PROVIDER=azuread-oauth2 -e OAUTH2_APPLICATION_ID=<your-oauth2-app-id> -e OAUTH2_SECRET_KEY=<your-oauth2-secret-key> mvantellingen/localshop

If you want more flexibility you can load your custom settings file by mounting a docker volume and creating a localshop.conf.py. This file will be loaded by localshop at the end of the settings file.

docker run
-e DATABASE_URL=postgresql://user:password@host/database -e SECRET_KEY=<secret-key-for-django> -v $(PWD)/config:/home/localshop/conf/ mvantellingen/localshop
Comments
  • Can't start (localshop celeryd -B -E fails)

    Can't start (localshop celeryd -B -E fails)

    I've tried installing localshop in a virtualenv and directly, both result in the same traceback. I'm able to import the localshop module from the command-line with "python -c 'import localshop'"

    $ localshop celeryd -B -E
    /usr/local/lib/python2.6/dist-packages/django/conf/__init__.py:110: DeprecationWarning: The SECRET_KEY setting must not be empty.
      warnings.warn("The SECRET_KEY setting must not be empty.", DeprecationWarning)
    
     -------------- celery@pages02 v3.0.0 (Chiastic Slide)
    ---- **** ----- 
    --- * ***  * -- [Configuration]
    -- * - **** --- . broker:      django://localhost//
    - ** ---------- . app:         default:0x19d55d0 (djcelery.loaders.DjangoLoader)
    - ** ---------- . concurrency: 1 (processes)
    - ** ---------- . events:      ON
    - ** ---------- 
    - *** --- * --- [Queues]
    -- ******* ---- . celery:      exchange:celery(direct) binding:celery
    --- ***** ----- 
    
    [2012-07-09 18:28:44,483: ERROR/MainProcess] Unrecoverable error: PicklingError("Can't pickle 'lock' object: <thread.lock object at 0x260f210>",)
    Traceback (most recent call last):
      File "/usr/local/lib/python2.6/dist-packages/celery/worker/__init__.py", line 350, in start                                                                                      
        component.start()                                                                                                                                                              
      File "/usr/local/lib/python2.6/dist-packages/billiard/process.py", line 138, in start                                                                                            
        self._popen = Popen(self)                                                                                                                                                      
      File "/usr/local/lib/python2.6/dist-packages/billiard/forking.py", line 223, in __init__                                                                                         
        dump(process_obj, to_child, HIGHEST_PROTOCOL)                                                                                                                                  
      File "/usr/local/lib/python2.6/dist-packages/billiard/forking.py", line 143, in dump                                                                                             
        ForkingPickler(file, protocol).dump(obj)                                                                                                                                       
      File "/usr/lib/python2.6/pickle.py", line 224, in dump                                                                                                                           
        self.save(obj)                                                                                                                                                                 
      File "/usr/lib/python2.6/pickle.py", line 331, in save                                                                                                                           
        self.save_reduce(obj=obj, *rv)                                                                                                                                                 
      File "/usr/lib/python2.6/pickle.py", line 419, in save_reduce                                                                                                                    
        save(state)                                                                                                                                                                    
      File "/usr/lib/python2.6/pickle.py", line 286, in save                                                                                                                           
        f(self, obj) # Call unbound method with explicit self                                                                                                                          
      File "/usr/lib/python2.6/pickle.py", line 649, in save_dict                                                                                                                      
        self._batch_setitems(obj.iteritems())                                                                                                                                          
      File "/usr/lib/python2.6/pickle.py", line 681, in _batch_setitems                                                                                                                
        save(v)                                                                                                                                                                        
      File "/usr/lib/python2.6/pickle.py", line 331, in save                                                                                                                           
        self.save_reduce(obj=obj, *rv)                                                                                                                                                 
      File "/usr/lib/python2.6/pickle.py", line 419, in save_reduce
        save(state)
      File "/usr/lib/python2.6/pickle.py", line 286, in save
        f(self, obj) # Call unbound method with explicit self
      File "/usr/lib/python2.6/pickle.py", line 649, in save_dict
        self._batch_setitems(obj.iteritems())
      File "/usr/lib/python2.6/pickle.py", line 681, in _batch_setitems
        save(v)
      File "/usr/lib/python2.6/pickle.py", line 331, in save
        self.save_reduce(obj=obj, *rv)
      File "/usr/lib/python2.6/pickle.py", line 419, in save_reduce
        save(state)
      File "/usr/lib/python2.6/pickle.py", line 286, in save
        f(self, obj) # Call unbound method with explicit self
      File "/usr/lib/python2.6/pickle.py", line 649, in save_dict
        self._batch_setitems(obj.iteritems())
      File "/usr/lib/python2.6/pickle.py", line 681, in _batch_setitems
        save(v)
      File "/usr/lib/python2.6/pickle.py", line 331, in save
        self.save_reduce(obj=obj, *rv)
      File "/usr/lib/python2.6/pickle.py", line 419, in save_reduce
        save(state)
      File "/usr/lib/python2.6/pickle.py", line 286, in save
        f(self, obj) # Call unbound method with explicit self
      File "/usr/lib/python2.6/pickle.py", line 649, in save_dict
        self._batch_setitems(obj.iteritems())
      File "/usr/lib/python2.6/pickle.py", line 681, in _batch_setitems
        save(v)
      File "/usr/lib/python2.6/pickle.py", line 313, in save
        (t.__name__, obj))
    PicklingError: Can't pickle 'lock' object: <thread.lock object at 0x260f210>
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/usr/local/lib/python2.6/dist-packages/billiard/forking.py", line 470, in main
        prepare(preparation_data)
      File "/usr/local/lib/python2.6/dist-packages/billiard/forking.py", line 610, in prepare
        file, path_name, etc = imp.find_module(main_name, dirs)
    ImportError: No module named localshop
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/usr/local/lib/python2.6/dist-packages/billiard/forking.py", line 470, in main
        prepare(preparation_data)
      File "/usr/local/lib/python2.6/dist-packages/billiard/forking.py", line 610, in prepare
        file, path_name, etc = imp.find_module(main_name, dirs)
    ImportError: No module named localshop
    
    
    bug 
    opened by cakebread 16
  • Installing older version

    Installing older version

    Hi, When trying to install a package that has an older version then the oldest in the repository, it doesn't work:

    pip install "celery==3.0.25"
    
    Collecting celery==3.0.25
      Could not find a version that satisfies the requirement celery==3.0.25 (from versions: 3.1.4, 3.1.5, 3.1.6, 3.1.7, 3.1.8, 3.1.9, 3.1.10, 3.1.11, 3.1.12, 3.1.13, 3.1.14, 3.1.15, 3.1.16, 3.1.17)
      No distributions matching the version for celery==3.0.25
    
    opened by sposs 9
  • Upload failed (500): INTERNAL SERVER ERROR

    Upload failed (500): INTERNAL SERVER ERROR

    Hi, First of all thanks for your work on this project. I am unable to upload packages to the private repo and nothing shows up in the error logs that could help me with the troubleshooting. the upload command manages to add Package and Release entries but it fails to upload the actual archive. Any hints on what might be wrong?

    Thank you in advance, Rares

    opened by fusionbeam 9
  • Scripted Install

    Scripted Install

    Hello,

    Thank you for providing such a useful app. I have a question about installation that I haven't been able to find an answer to. Hopefully it isn't out of line to ask here.

    I would like to create a chef cookbook to automatically install/configure localshop. I'm not sure how to get around the prompts during 'localshop init' for username, email, and password though. Is there a way these values could be passed in from a configuration file or something so the installation can be fully scripted? Thanks.

    opened by fusionx86 8
  • Unable to install packages via Localshop?

    Unable to install packages via Localshop?

    Hi,

    I've setup localshop (develop) branch on a machine, and I'm having issues installing packages through it.

    I've started up the Gunicorn server:

    localshop run_gunicorn -b 0.0.0.0:8000
    Notice: Unable to load configuration file /home/vichoo/.localshop.py (No such file or directory), using default settings
    
    
    /home/vichoo/.virtualenvs/localshop/lib/python2.6/site-packages/Django-1.4.2-py2.6.egg/django/conf/__init__.py:110: DeprecationWarning: The SECRET_KEY setting must not be empty.
      warnings.warn("The SECRET_KEY setting must not be empty.", DeprecationWarning)
    2013-01-04 01:52:53 [16124] [INFO] Starting gunicorn 0.14.6
    Starting gunicorn 0.14.6
    2013-01-04 01:52:53 [16124] [INFO] Listening at: http://0.0.0.0:8000 (16124)
    Listening at: http://0.0.0.0:8000 (16124)
    2013-01-04 01:52:53 [16124] [INFO] Using worker: sync
    Using worker: sync
    2013-01-04 01:52:53 [16133] [INFO] Booting worker with pid: 16133
    Booting worker with pid: 16133
    /home/vichoo/.virtualenvs/localshop/lib/python2.6/site-packages/Django-1.4.2-py2.6.egg/django/template/defaulttags.py:1235: DeprecationWarning: The syntax for the url template tag is changing. Load the `url` tag from the `future` tag library to start using the new behavior.
      category=DeprecationWarning)
    Not Found: /favicon.ico
    

    And I've started up the celery job:

    localshop celeryd -B -E -P solo
    Notice: Unable to load configuration file /home/vichoo/.localshop.py (No such file or directory), using default settings
    
    
    /home/vichoo/.virtualenvs/localshop/lib/python2.6/site-packages/Django-1.4.2-py2.6.egg/django/conf/__init__.py:110: DeprecationWarning: The SECRET_KEY setting must not be empty.
      warnings.warn("The SECRET_KEY setting must not be empty.", DeprecationWarning)
    
     -------------- celery@hostname v3.0.12 (Chiastic Slide)
    ---- **** -----
    --- * ***  * -- [Configuration]
    -- * - **** --- . broker:      django://localhost//
    - ** ---------- . app:         default:0x1ee7d350 (djcelery.loaders.DjangoLoader)
    - ** ---------- . concurrency: 1 (solo)
    - ** ---------- . events:      ON
    - ** ----------
    - *** --- * --- [Queues]
    -- ******* ---- . celery:      exchange:celery(direct) binding:celery
    --- ***** -----
    
    [2013-01-04 01:57:40,880: WARNING/MainProcess] celery@hostname ready.
    

    I tried using a CIDR to provision my IP address, however, that still seemed to give me permission errors when I tried to retrieve the package listing:

    > wget http://hostname:8000/simple/
    --12:17:33--  http://hostname:8000/simple/
    Resolving hostname... 10.68.129.37
    Connecting to hostname|10.68.129.37|:8000... connected.
    HTTP request sent, awaiting response... 401 UNAUTHORIZED
    Authorization failed.
    

    I then generated an access key, and seemed to have more luck with that:

    > wget http://385cfd889b274a9ea3fb737fb4919d7e:a34ba2d73f32468f8b481290c3855d4e@hostname:8000/simple
    --12:26:36--  http://385cfd889b274a9ea3fb737fb4919d7e:*password*@hostname:8000/simple
    Resolving hostname... 10.68.129.37
    Connecting to hostname|10.68.129.37|:8000... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: unspecified [text/html]
    Saving to: `simple.1'
    
    [ <=>                                                                                                                  ] 69          --.-K/s   in 0s
    
    12:26:36 (16.5 MB/s) - `simple.1' saved [69]
    

    However, Pip is still having issues installing packages - it doesn't seem to be able to retrieve the /simple/ package listing, which is weird:

    > pip install -i http://385cfd889b274a9ea3fb737fb4919d7e:a34ba2d73f32468f8b481290c3855d4e@hostname:8000/simple/ yolk
    Downloading/unpacking yolk 
    Cannot fetch index base URL http://385cfd889b274a9ea3fb737fb4919d7e:a34ba2d73f32468f8b481290c3855d4e@hostname:8000/simple/
    Could not find any downloads that satisfy the requirement yolk
    No distributions at all found for yolk
    Storing complete log in /home/vichoo/.pip/pip.log
    

    Also, on the Gunicorn console, I see:

    2013-01-04 03:15:31 [17534] [CRITICAL] WORKER TIMEOUT (pid:17557)
    WORKER TIMEOUT (pid:17557)  
    

    Cheers, Victor

    bug 
    opened by victorhooi 8
  • Installing packages from localshop fails with md5 error

    Installing packages from localshop fails with md5 error

    I have a localshop instance running on http://192.168.1.20/, however when i try to install packages from It i get the following error:

    $ pip install -ihttp://192.168.1.20/simple/ coverage
    Downloading/unpacking coverage
      Downloading coverage-3.5.2.tar.gz (unknown size): 0bytes downloaded
      MD5 hash of the package http://192.168.1.20/packages/coverage/download/97/coverage-3.5.2.tar.gz#md5=28c43d41b13f8987ea14d7b1d4a4e3ec (from http://192.168.1.20/simple/coverage/) (d41d8cd98f00b204e9800998ecf8427e) doesn't match the expected hash 28c43d41b13f8987ea14d7b1d4a4e3ec!
    Bad MD5 hash for package http://192.168.1.20/packages/coverage/download/97/coverage-3.5.2.tar.gz#md5=28c43d41b13f8987ea14d7b1d4a4e3ec (from http://192.168.1.20/simple/coverage/)
    Storing complete log in /home/armonge/.pip/pip.log
    
    

    According to the celery logs the package had previously been successfully downloaded

    [2012-08-24 09:01:53,581: INFO/MainProcess] Got task from broker: localshop.apps.packages.tasks.download_file[e854d68d-812a-4172-8783-c6c65844357a]
    [2012-08-24 09:01:53,627: DEBUG/MainProcess] Mediator: Running callback for task: localshop.apps.packages.tasks.download_file[e854d68d-812a-4172-8783-c6c65844357a]
    [2012-08-24 09:01:53,628: DEBUG/MainProcess] TaskPool: Apply <function execute_and_trace at 0x9be8a3c> (args:('localshop.apps.packages.tasks.download_file', 'e854d68d-812a-4172-8783-c6c65844357
    a', [], {'pk': 97}) kwargs:{'hostname': 'localhost.localdomain', 'request': {'retries': 0, 'task': 'localshop.apps.packages.tasks.download_file', 'utc': False, 'loglevel': 10, 'delivery_info': 
    {'routing_key': u'celery', 'exchange': u'celery'}, 'args': [], 'expires': None, 'is_eager': False, 'eta': None, 'hostname': 'localhost.localdomain', 'kwargs': {'pk': 97}, 'logfile': None, 'id':
     'e854d68d-812a-4172-8783-c6c65844357a'}})
    [2012-08-24 09:01:53,628: DEBUG/MainProcess] Task accepted: localshop.apps.packages.tasks.download_file[e854d68d-812a-4172-8783-c6c65844357a] pid:10546
    [2012-08-24 09:01:53,735: INFO/PoolWorker-1] Downloading http://pypi.python.org/packages/source/c/coverage/coverage-3.5.2.tar.gz
    [2012-08-24 09:01:53,737: INFO/PoolWorker-1] Starting new HTTP connection (1): pypi.python.org
    [2012-08-24 09:01:54,046: DEBUG/PoolWorker-1] "GET /packages/source/c/coverage/coverage-3.5.2.tar.gz HTTP/1.1" 200 115497
    [2012-08-24 09:01:57,436: INFO/PoolWorker-1] Complete
    [2012-08-24 09:01:57,529: INFO/MainProcess] Task localshop.apps.packages.tasks.download_file[e854d68d-812a-4172-8783-c6c65844357a] succeeded in 3.90104198456s: None
    

    The md5 of the file in cache seems to be:

    md5sum .localshop/files/source/c/coverage/coverage-3.5.2.tar.gz 
    d41d8cd98f00b204e9800998ecf8427e  .localshop/files/source/c/coverage/coverage-3.5.2.tar.gz
    

    And more interesting is that the file seems to be empy

    du -h .localshop/files/source/c/coverage/coverage-3.5.2.tar.gz
    0   .localshop/files/source/c/coverage/coverage-3.5.2.tar.gz
    

    For the record I am using the following software versions

    Django          - 1.4.1        - active 
    Python          - 2.7.3        - active development (/usr/lib/python2.7/lib-dynload)
    South           - 0.7.6        - active 
    amqplib         - 1.0.2        - active 
    anyjson         - 0.3.3        - active 
    celery          - 2.5.5        - active 
    distribute      - 0.6.24       - active 
    django-celery   - 2.4.2        - active 
    django-kombu    - 0.9.4        - active 
    django-model-utils - 1.1.0        - active 
    django-picklefield - 0.2.1        - active 
    docutils        - 0.8.1        - active 
    gunicorn        - 0.14.6       - active 
    kombu           - 2.1.8        - active 
    localshop       - 0.3          - active 
    lockfile        - 0.9.1        - active 
    logan           - 0.3.1        - active 
    netaddr         - 0.7.6        - active 
    pip             - 1.1          - active 
    python-daemon   - 1.6          - active 
    python-dateutil - 1.5          - active 
    requests        - 0.13.8       - active 
    wsgiref         - 0.1.2        - active development (/usr/lib/python2.7)
    yolk            - 0.4.3        - active 
    

    Also I'd be willing to lend all the help i can, provided some direction

    bug 
    opened by armonge 8
  • ImportError: Could not import settings 'localshop.settings'

    ImportError: Could not import settings 'localshop.settings'

    Could you please help me with this:

    C:\Users\Administrator>localshop Traceback (most recent call last): File "c:\python27\lib\runpy.py", line 162, in run_module_as_main "main", fname, loader, pkg_name) File "c:\python27\lib\runpy.py", line 72, in run_code exec code in run_globals File "C:\Python27\Scripts\localshop.exe__main.py", line 9, in File "c:\python27\lib\site-packages\localshop\runner.py", line 12, in main execute_from_command_line(sys.argv) File "c:\python27\lib\site-packages\django\core\management__init__.py", line 385, in execute_from_command_line utility.execute() File "c:\python27\lib\site-packages\django\core\management__init__.py", line 345, in execute settings.INSTALLED_APPS File "c:\python27\lib\site-packages\django\conf__init__.py", line 46, in getattr self.setup(name) File "c:\python27\lib\site-packages\django\conf__init_.py", line 42, in setup self.wrapped = Settings(settings_module) File "c:\python27\lib\site-packages\django\conf__init.py", line 98, in init % (self.SETTINGS_MODULE, e) ImportError: Could not import settings 'localshop.settings' (Is it on sys.path? Is there an import error in the settings file?): cannot import name _uuid_generate_random

    opened by yytj17 7
  • localshop fails to install on Python 3.x

    localshop fails to install on Python 3.x

    Due to the fact that the latest released version uses Pillow<2.0.0 the installation fails. If installed from source the installation fails due to django-userna.

    enhancement 
    opened by thedrow 7
  • Error Running localshop upgrade - django.db.utils.DatabaseError: near

    Error Running localshop upgrade - django.db.utils.DatabaseError: near "*": syntax error

    Hi,

    I'm installing LocalShop on RHEL 5 with Python 2.6.

    It seems to install fine, and I've run localshop init.

    However, when I try to create the database and run the migrations:

    ./localshop upgrade
    Syncing...
    Creating tables ...
    Installing custom SQL ...
    Installing indexes ...
    Installed 0 object(s) from 0 fixture(s)
    
    Synced:
    > django.contrib.auth
    > django.contrib.contenttypes
    > django.contrib.sessions
    > django.contrib.sites
    > django.contrib.messages
    > django.contrib.staticfiles
    > django.contrib.admin
    > djkombu
    > south
    
    Not synced (use migrations):
    - djcelery
    - userena
    - guardian
    - localshop.apps.packages
    - localshop.apps.permissions
    (use ./manage.py migrate to migrate these)
    Running migrations for djcelery:
    - Migrating forwards to 0004_v30_changes.
    > djcelery:0003_v26_changes
    FATAL ERROR - The following SQL query failed: CREATE TABLE "_south_new_djcelery_crontabschedule" ("hour" varchar(64) NOT NULL, "day_of_month" varchar(64) NOT NULL DEFAULT *, "day_of_week" varchar(64) NOT NULL, "month_of_year" varchar(64) NOT NULL DEFAULT '*', "id" integer PRIMARY KEY, "minute" varchar(64) NOT NULL)
    The error was: near "*": syntax error
    ! Error found during real run of migration! Aborting.
    
    ! Since you have a database that does not support running
    ! schema-altering statements in transactions, we have had 
     ! to leave it in an interim state between migrations.
    
    ! You *might* be able to recover with:
    ! The South developers regret this has happened, and would
    ! like to gently persuade you to consider a slightly
    ! easier-to-deal-with DBMS (one that supports DDL transactions)
    ! NOTE: The error which caused the migration to fail is further up.
    Error in migration: djcelery:0003_v26_changes
    Traceback (most recent call last):
      File "./localshop", line 9, in <module>
        load_entry_point('localshop==0.3', 'console_scripts', 'localshop')()
      File "/u01/pypi/localshop/lib/python2.6/site-packages/localshop-0.3-py2.6.egg/localshop/runner.py", line 53, in main
        settings_envvar='LOCALSHOP_CONF',
      File "/u01/pypi/localshop/lib/python2.6/site-packages/logan-0.5.0-py2.6.egg/logan/runner.py", line 135, in run_app
        management.execute_from_command_line([runner_name, command] + command_args)
      File "/u01/pypi/localshop/lib/python2.6/site-packages/Django-1.4.1-py2.6.egg/django/core/management/__init__.py", line 443, in execute_from_command_line
        utility.execute()
      File "/u01/pypi/localshop/lib/python2.6/site-packages/Django-1.4.1-py2.6.egg/django/core/management/__init__.py", line 382, in execute
        self.fetch_command(subcommand).run_from_argv(self.argv)
      File "/u01/pypi/localshop/lib/python2.6/site-packages/Django-1.4.1-py2.6.egg/django/core/management/base.py", line 196, in run_from_argv
        self.execute(*args, **options.__dict__)
      File "/u01/pypi/localshop/lib/python2.6/site-packages/Django-1.4.1-py2.6.egg/django/core/management/base.py", line 232, in execute
        output = self.handle(*args, **options)
      File "/u01/pypi/localshop/lib/python2.6/site-packages/localshop-0.3-py2.6.egg/localshop/management/commands/upgrade.py", line 13, in handle
        delete_ghosts=True)
      File "/u01/pypi/localshop/lib/python2.6/site-packages/Django-1.4.1-py2.6.egg/django/core/management/__init__.py", line 150, in call_command
        return klass.execute(*args, **defaults)
      File "/u01/pypi/localshop/lib/python2.6/site-packages/Django-1.4.1-py2.6.egg/django/core/management/base.py", line 232, in execute
        output = self.handle(*args, **options)
      File "/u01/pypi/localshop/lib/python2.6/site-packages/south/management/commands/migrate.py", line 108, in handle
        ignore_ghosts = ignore_ghosts,
      File "/u01/pypi/localshop/lib/python2.6/site-packages/south/migration/__init__.py", line 213, in migrate_app
        success = migrator.migrate_many(target, workplan, database)
      File "/u01/pypi/localshop/lib/python2.6/site-packages/south/migration/migrators.py", line 235, in migrate_many
        result = migrator.__class__.migrate_many(migrator, target, migrations, database)
      File "/u01/pypi/localshop/lib/python2.6/site-packages/south/migration/migrators.py", line 310, in migrate_many
        result = self.migrate(migration, database)
      File "/u01/pypi/localshop/lib/python2.6/site-packages/south/migration/migrators.py", line 133, in migrate
        result = self.run(migration)
      File "/u01/pypi/localshop/lib/python2.6/site-packages/south/migration/migrators.py", line 107, in run
        return self.run_migration(migration)
      File "/u01/pypi/localshop/lib/python2.6/site-packages/south/migration/migrators.py", line 81, in run_migration
        migration_function()
      File "/u01/pypi/localshop/lib/python2.6/site-packages/south/migration/migrators.py", line 57, in <lambda>
        return (lambda: direction(orm))
      File "/u01/pypi/localshop/lib/python2.6/site-packages/django_celery-3.0.9-py2.6.egg/djcelery/migrations/0003_v26_changes.py", line 16, in forwards
        db.add_column('djcelery_crontabschedule', 'month_of_year', self.gf('django.db.models.fields.CharField')(default='*', max_length=64), keep_default=False)
      File "/u01/pypi/localshop/lib/python2.6/site-packages/south/db/sqlite3.py", line 31, in add_column
        field.column: self._column_sql_for_create(table_name, name, field, False),
      File "/u01/pypi/localshop/lib/python2.6/site-packages/south/db/generic.py", line 44, in _cache_clear
        return func(self, table, *args, **opts)
      File "/u01/pypi/localshop/lib/python2.6/site-packages/south/db/sqlite3.py", line 103, in _remake_table
        ", ".join(["%s %s" % (self.quote_name(cname), ctype) for cname, ctype in definitions.items()]),
      File "/u01/pypi/localshop/lib/python2.6/site-packages/south/db/generic.py", line 273, in execute
        cursor.execute(sql, params)
      File "/u01/pypi/localshop/lib/python2.6/site-packages/Django-1.4.1-py2.6.egg/django/db/backends/util.py", line 40, in execute
        return self.cursor.execute(sql, params)
      File "/u01/pypi/localshop/lib/python2.6/site-packages/Django-1.4.1-py2.6.egg/django/db/backends/sqlite3/base.py", line 337, in execute
        return Database.Cursor.execute(self, query, params)
    django.db.utils.DatabaseError: near "*": syntax error
    

    Any thoughts?

    Cheers, Victor

    opened by victorhooi 7
  • How to follow docker instructions ?

    How to follow docker instructions ?

    Instructions are below ... there is no docker.conf.py file, or if there is I don't know where, should I be in some directory, I just checked everything out from git and this is confusing:

    Install docker and docker-compose and then run:
    
    cp docker.conf.py{.example,}
    docker-compose build
    docker-compose run localshop syncdb
    docker-compose run localshop createsuperuser
    docker-compose up
    
    You should be able to see localshop running in http://docker-host:8000.
    
    opened by stuaxo 6
  • unable to use local package uploads

    unable to use local package uploads

    Hi, i'm using localshop 1.4.3 installed per the instructions.

    I'm able to install packages via my localshop server per the instructions (or by setting an environment variable PIP_INDEX_URL , but i mean same thing right? probly).

    However i'm trying to upload a fork of gunicorn, where i've bumped the major version to 180, to my localshop server, and that fails in one of two ways depending on my .pypirc configuration file.

    method 1, the documented method: pypirc = [distutils] index-servers = internal

    [internal] repository: http://10.77.0.5/simple/ username: 2cebb3ed0e6249de947a20e328a43dd5 password: 438c5415b8944beab6027366f89981a8

    $python setup.py sdist upload -r internal <...> running upload Submitting dist/gunicorn-180.2.tar.gz to http://10.77.0.5/simple/ Upload failed (400): BAD REQUEST

    i look at my server logs and i can see nginx has returned the 400, but there's nothing in the localshop or celery logs indicating what the problem was.

    method 2: i saw it on some blog post? pypirc file is same as in option1, except the repository URL has been stripped of its "/simple", ie: repository: http://10.77.0.5/

    $python setup.py sdist upload -r internal <...> running upload Submitting dist/gunicorn-180.2.tar.gz to http://10.77.0.5/ Server response (200): OK

    but!! i don't see gunicorn-180.2 in my localshop packages list!!

    in either case when i try to install gunicorn through my localshop, it can see the main pypi versions but never my fork.

    I've also tried having the user credentials be those of the django super-user, but no luck there either.

    so this is a shame as i was really hoping to use localshop to cache all packages and serve some internal packages, but i can't figure out what's going wrong here.

    enhancement upload 
    opened by joekimmel 6
  • Bump django-celery-results from 1.2.1 to 2.4.0

    Bump django-celery-results from 1.2.1 to 2.4.0

    Bumps django-celery-results from 1.2.1 to 2.4.0.

    Release notes

    Sourced from django-celery-results's releases.

    v2.4.0

    What's Changed

    New Contributors

    Full Changelog: https://github.com/celery/django-celery-results/compare/v2.3.1...v2.4.0

    v2.3.1

    What's Changed

    New Contributors

    Full Changelog: https://github.com/celery/django-celery-results/compare/v2.3.0...v2.3.1

    v2.3.0

    What's Changed

    ... (truncated)

    Changelog

    Sourced from django-celery-results's changelog.

    2.4.0

    :release-date: 2022-06-29 4:30 P.M. UTC+6:00 :release-by: Asif Saif Uddin

    • Fix #315 Save args, kwargs and other extended props only when result_extended config is set to True.
    • Fix atomic transaction not routing to the the correct DB (#324).
    • Drop django 2.2 from matrix

    .. _version-2.3.1:

    2.3.1

    :release-date: 2022-04-17 12:50 P.M. UTC+6:00 :release-by: Asif Saif Uddin

    • Remove hard dependency on psycopg2.
    • Fix #296 Stop producing a universal wheel, python 2 is unspported.
    • fix: The description content type for setuptools needs to be rst to markdown.

    .. _version-2.3.0:

    2.3.0

    :release-date: 2022-03-01 1:45 p.m. UTC+6:00 :release-by: Asif Saif Uddin

    • Fix default_app_config deprecation (#221)
    • Use string values for django-cache keys #230 (#242)
    • feat: raw delete expired instead of Queryset.delete (#235)
    • Fix `pydoc.ErrorDuringImport: problem in django_celery_results url
    • Russian language support (#255)
    • Add Simplified Chinese translation strings.
    • Minor code clean up
    • feat: add periodic_task_name (#261)
    • Update CI with django 4.0 (#272)
    • Add translation of the messages to brazilian portuguese (#278)
    • Fix properties default value (#281)
    • Work around Oracle migration instability
    • Fix field size for MySQL (#285)
    • Update python & pypy min version (#291)
    • bum min pytest versions

    .. _version-2.2.0:

    2.2.0

    ... (truncated)

    Commits
    • 3b34dd9 Bump version: v2.3.1 → v2.4.0
    • f02f6a6 changelog entry for v2.4.0
    • 2ebdcce remove django 2.2 from classifier
    • e927770 Fix atomic transaction not routing to the the correct DB (#324)
    • 16a18d9 [pre-commit.ci] pre-commit autoupdate
    • ad508fe save extended properties only when asked for (#316)
    • e174c99 drop django 2.2
    • 09b45a9 [pre-commit.ci] pre-commit autoupdate
    • 28de6cf reademe fix
    • 8a80c11 Bump version: v2.3.0 → v2.3.1
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump django from 2.2.13 to 2.2.28

    Bump django from 2.2.13 to 2.2.28

    Bumps django from 2.2.13 to 2.2.28.

    Commits
    • 5c33000 [2.2.x] Bumped version for 2.2.28 release.
    • 29a6c98 [2.2.x] Fixed CVE-2022-28347 -- Protected QuerySet.explain(**options) against...
    • 2c09e68 [2.2.x] Fixed CVE-2022-28346 -- Protected QuerySet.annotate(), aggregate(), a...
    • 8352b98 [2.2.x] Added stub release notes for 2.2.28.
    • 2801f29 [2.2.x] Reverted "Fixed forms_tests.tests.test_renderers with Jinja 3.1.0+."
    • e03648f [2.2.x] Fixed forms_tests.tests.test_renderers with Jinja 3.1.0+.
    • 9d13d8c [2.2.x] Fixed typo in release notes.
    • 047ece3 [2.2.x] Added CVE-2022-22818 and CVE-2022-23833 to security archive.
    • 2427b2f [2.2.x] Post-release version bump.
    • e541f2d [2.2.x] Bumped version for 2.2.27 release.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump pillow from 7.1.2 to 8.3.2

    Bump pillow from 7.1.2 to 8.3.2

    Bumps pillow from 7.1.2 to 8.3.2.

    Release notes

    Sourced from pillow's releases.

    8.3.2

    https://pillow.readthedocs.io/en/stable/releasenotes/8.3.2.html

    Security

    • CVE-2021-23437 Raise ValueError if color specifier is too long [hugovk, radarhere]

    • Fix 6-byte OOB read in FliDecode [wiredfool]

    Python 3.10 wheels

    • Add support for Python 3.10 #5569, #5570 [hugovk, radarhere]

    Fixed regressions

    • Ensure TIFF RowsPerStrip is multiple of 8 for JPEG compression #5588 [kmilos, radarhere]

    • Updates for ImagePalette channel order #5599 [radarhere]

    • Hide FriBiDi shim symbols to avoid conflict with real FriBiDi library #5651 [nulano]

    8.3.1

    https://pillow.readthedocs.io/en/stable/releasenotes/8.3.1.html

    Changes

    8.3.0

    https://pillow.readthedocs.io/en/stable/releasenotes/8.3.0.html

    Changes

    ... (truncated)

    Changelog

    Sourced from pillow's changelog.

    8.3.2 (2021-09-02)

    • CVE-2021-23437 Raise ValueError if color specifier is too long [hugovk, radarhere]

    • Fix 6-byte OOB read in FliDecode [wiredfool]

    • Add support for Python 3.10 #5569, #5570 [hugovk, radarhere]

    • Ensure TIFF RowsPerStrip is multiple of 8 for JPEG compression #5588 [kmilos, radarhere]

    • Updates for ImagePalette channel order #5599 [radarhere]

    • Hide FriBiDi shim symbols to avoid conflict with real FriBiDi library #5651 [nulano]

    8.3.1 (2021-07-06)

    • Catch OSError when checking if fp is sys.stdout #5585 [radarhere]

    • Handle removing orientation from alternate types of EXIF data #5584 [radarhere]

    • Make Image.array take optional dtype argument #5572 [t-vi, radarhere]

    8.3.0 (2021-07-01)

    • Use snprintf instead of sprintf. CVE-2021-34552 #5567 [radarhere]

    • Limit TIFF strip size when saving with LibTIFF #5514 [kmilos]

    • Allow ICNS save on all operating systems #4526 [baletu, radarhere, newpanjing, hugovk]

    • De-zigzag JPEG's DQT when loading; deprecate convert_dict_qtables #4989 [gofr, radarhere]

    • Replaced xml.etree.ElementTree #5565 [radarhere]

    ... (truncated)

    Commits
    • 8013f13 8.3.2 version bump
    • 23c7ca8 Update CHANGES.rst
    • 8450366 Update release notes
    • a0afe89 Update test case
    • 9e08eb8 Raise ValueError if color specifier is too long
    • bd5cf7d FLI tests for Oss-fuzz crash.
    • 94a0cf1 Fix 6-byte OOB read in FliDecode
    • cece64f Add 8.3.2 (2021-09-02) [CI skip]
    • e422386 Add release notes for Pillow 8.3.2
    • 08dcbb8 Pillow 8.3.2 supports Python 3.10 [ci skip]
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump pillow from 7.1.2 to 8.1.1

    Bump pillow from 7.1.2 to 8.1.1

    Bumps pillow from 7.1.2 to 8.1.1.

    Release notes

    Sourced from pillow's releases.

    8.1.1

    https://pillow.readthedocs.io/en/stable/releasenotes/8.1.1.html

    8.1.0

    https://pillow.readthedocs.io/en/stable/releasenotes/8.1.0.html

    Changes

    Dependencies

    Deprecations

    ... (truncated)

    Changelog

    Sourced from pillow's changelog.

    8.1.1 (2021-03-01)

    • Use more specific regex chars to prevent ReDoS. CVE-2021-25292 [hugovk]

    • Fix OOB Read in TiffDecode.c, and check the tile validity before reading. CVE-2021-25291 [wiredfool]

    • Fix negative size read in TiffDecode.c. CVE-2021-25290 [wiredfool]

    • Fix OOB read in SgiRleDecode.c. CVE-2021-25293 [wiredfool]

    • Incorrect error code checking in TiffDecode.c. CVE-2021-25289 [wiredfool]

    • PyModule_AddObject fix for Python 3.10 #5194 [radarhere]

    8.1.0 (2021-01-02)

    • Fix TIFF OOB Write error. CVE-2020-35654 #5175 [wiredfool]

    • Fix for Read Overflow in PCX Decoding. CVE-2020-35653 #5174 [wiredfool, radarhere]

    • Fix for SGI Decode buffer overrun. CVE-2020-35655 #5173 [wiredfool, radarhere]

    • Fix OOB Read when saving GIF of xsize=1 #5149 [wiredfool]

    • Makefile updates #5159 [wiredfool, radarhere]

    • Add support for PySide6 #5161 [hugovk]

    • Use disposal settings from previous frame in APNG #5126 [radarhere]

    • Added exception explaining that repr_png saves to PNG #5139 [radarhere]

    • Use previous disposal method in GIF load_end #5125 [radarhere]

    ... (truncated)

    Commits
    • 741d874 8.1.1 version bump
    • 179cd1c Added 8.1.1 release notes to index
    • 7d29665 Update CHANGES.rst [ci skip]
    • d25036f Credits
    • 973a4c3 Release notes for 8.1.1
    • 521dab9 Use more specific regex chars to prevent ReDoS
    • 8b8076b Fix for CVE-2021-25291
    • e25be1e Fix negative size read in TiffDecode.c
    • f891baa Fix OOB read in SgiRleDecode.c
    • cbfdde7 Incorrect error code checking in TiffDecode.c
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Install gets stuck at pillow

    Install gets stuck at pillow

    On Ubuntu 20.04 on python 3.8, the install gets stuck at Pillow until I hit Ctrl+C

    $ pip3 install localshop -v
    ** snipped ***
       Running setup.py (path:/tmp/pip-install-h51hwhx7/Pillow/setup.py) egg_info for package Pillow
        Running command python setup.py egg_info
        /home/stu/.local/lib/python3.8/site-packages/setuptools/distutils_patch.py:25: UserWarning: Distutils was imported before Setuptools. This usage is discouraged and may exhibit undesirable behaviors or errors. Please use Setuptools' objects directly or at least import Setuptools first.
          warnings.warn(
        running egg_info
        creating /tmp/pip-install-h51hwhx7/Pillow/pip-egg-info/Pillow.egg-info
        writing /tmp/pip-install-h51hwhx7/Pillow/pip-egg-info/Pillow.egg-info/PKG-INFO
        writing dependency_links to /tmp/pip-install-h51hwhx7/Pillow/pip-egg-info/Pillow.egg-info/dependency_links.txt
        writing top-level names to /tmp/pip-install-h51hwhx7/Pillow/pip-egg-info/Pillow.egg-info/top_level.txt
        writing manifest file '/tmp/pip-install-h51hwhx7/Pillow/pip-egg-info/Pillow.egg-info/SOURCES.txt'
        reading manifest file '/tmp/pip-install-h51hwhx7/Pillow/pip-egg-info/Pillow.egg-info/SOURCES.txt'
        reading manifest template 'MANIFEST.in'
        warning: no files found matching '*.yaml'
        warning: no files found matching '*.bdf' under directory 'Images'
        warning: no files found matching '*.fli' under directory 'Images'
        warning: no files found matching '*.gif' under directory 'Images'
        warning: no files found matching '*.icns' under directory 'Images'
        warning: no files found matching '*.ico' under directory 'Images'
        warning: no files found matching '*.jpg' under directory 'Images'
        warning: no files found matching '*.pbm' under directory 'Images'
        warning: no files found matching '*.pil' under directory 'Images'
        warning: no files found matching '*.png' under directory 'Images'
        warning: no files found matching '*.ppm' under directory 'Images'
        warning: no files found matching '*.psd' under directory 'Images'
        warning: no files found matching '*.tar' under directory 'Images'
        warning: no files found matching '*.webp' under directory 'Images'
        warning: no files found matching '*.xpm' under directory 'Images'
        warning: no files found matching 'README' under directory 'Sane'
        warning: no files found matching 'README' under directory 'Scripts'
        warning: no files found matching '*.icm' under directory 'Tests'
        warning: no files found matching '*.txt' under directory 'Tk'
        writing manifest file '/tmp/pip-install-h51hwhx7/Pillow/pip-egg-info/Pillow.egg-info/SOURCES.txt'
    

    $pip3 install pillow works to completion though.

    opened by stuaxo 0
Owner
Michael van Tellingen
:collision:
Michael van Tellingen
A PyPI mirror client according to PEP 381 http://www.python.org/dev/peps/pep-0381/

This is a PyPI mirror client according to PEP 381 + PEP 503 http://www.python.org/dev/peps/pep-0381/. bandersnatch >=4.0 supports Linux, MacOSX + Wind

Python Packaging Authority 345 Dec 28, 2022
A PyPI mirror client according to PEP 381 http://www.python.org/dev/peps/pep-0381/

This is a PyPI mirror client according to PEP 381 + PEP 503 http://www.python.org/dev/peps/pep-0381/. bandersnatch >=4.0 supports Linux, MacOSX + Wind

Python Packaging Authority 345 Dec 28, 2022
:package: :fire: Python project management. Manage packages: convert between formats, lock, install, resolve, isolate, test, build graph, show outdated, audit. Manage venvs, build package, bump version.

THE PROJECT IS ARCHIVED Forks: https://github.com/orsinium/forks DepHell -- project management for Python. Why it is better than all other tools: Form

DepHell 1.7k Dec 30, 2022
A PDM plugin that packs your packages into a zipapp

pdm-packer A PDM plugin that packs your packages into a zipapp Requirements pdm-packer requires Python >=3.7 Installation If you have installed PDM wi

Frost Ming 23 Dec 29, 2022
Install All Basic Termux Packages To Your Phone

~All-Packages~ The Easiest Way To Install All Termux Packages ?? Tool By ⒹⓈ᭄ʜʏᴅʀᴀ✘๛ˢᴸ ?? Contact Me On ?? >> AVAILABLE ON : Termux >> TESTED ON : Term

ⒹⓈ ʜʏͥᴅᷧʀᷟᴀ✘๛ˢᴸ 7 Nov 12, 2022
Template repo for a GCP-hosted REST API with automatic API versioning and custom domain mapping

Python + Poetry REST API with FastAPI, hosted on GCP This template will get you ready to deploy a FastAPI app in Google Cloud with automatic API versi

Kevin Duff 10 Dec 25, 2022
OS-agnostic, system-level binary package manager and ecosystem

Conda is a cross-platform, language-agnostic binary package manager. It is the package manager used by Anaconda installations, but it may be used for

Conda 5.1k Dec 30, 2022
Python dependency management and packaging made easy.

Poetry: Dependency Management for Python Poetry helps you declare, manage and install dependencies of Python projects, ensuring you have the right sta

Poetry 23.1k Jan 1, 2023
OS-agnostic, system-level binary package manager and ecosystem

Conda is a cross-platform, language-agnostic binary package manager. It is the package manager used by Anaconda installations, but it may be used for

Conda 5.1k Jan 7, 2023
Python dependency management and packaging made easy.

Poetry: Dependency Management for Python Poetry helps you declare, manage and install dependencies of Python projects, ensuring you have the right sta

Poetry 23.2k Jan 5, 2023
Install and Run Python Applications in Isolated Environments

pipx — Install and Run Python Applications in Isolated Environments Documentation: https://pipxproject.github.io/pipx/ Source Code: https://github.com

null 5.8k Dec 31, 2022
An installation and dependency system for Python

Pyflow Simple is better than complex - The Zen of Python Pyflow streamlines working with Python projects and files. It's an easy-to-use CLI app with a

David O'Connor 1.2k Dec 23, 2022
Package manager based on libdnf and libsolv. Replaces YUM.

Dandified YUM Dandified YUM (DNF) is the next upcoming major version of YUM. It does package management using RPM, libsolv and hawkey libraries. For m

null 1.1k Dec 26, 2022
A flexible package manager that supports multiple versions, configurations, platforms, and compilers.

Spack Spack is a multi-platform package manager that builds and installs multiple versions and configurations of software. It works on Linux, macOS, a

Spack 3.1k Jan 9, 2023
A software manager for easy development and distribution of Python code

Piper A software manager for easy development and distribution of Python code. The main features that Piper adds to Python are: Support for large-scal

null 13 Nov 22, 2022
If you have stars in your Pipfile and you don't want them, this project is for you!

unstar-pipfile If you have stars in your Pipfile, this project is for you! unstar-pipfile is a tool to scan Pipfile.lock and replace any stars in Pipf

null 2 Jul 26, 2022
Workon - A simple project manager for conda, windows 10 and vscode

WORK ON A simple project manager for conda, windows 10 and vscode Installation p

Jesus Alan Hernandez Galvan 1 Jan 16, 2022
Auto Liker, Auto Reaction, Auto Comment, Auto Follower Tool. RajeLiker Credit Hacker.

Auto Liker, Auto Reaction, Auto Comment, Auto Follower Tool. RajeLiker Credit Hacker. Unlimited RajeLiker Credit Hack. Thanks To RajeLiker.

Md. Mehedi Hasan 32 Dec 28, 2022
Buy early bsc gems with custom gas fee, slippage, amount. Auto approve token after buy. Sell buyed token with custom gas fee, slippage, amount. And more.

Pancakeswap Sniper bot Full version of Pancakeswap sniping bot used to snipe during fair coin launches. With advanced options and a graphical user int

Jesus Crypto 204 Apr 27, 2022
A pypi packages finder telegram bot.

PyPi-Bot A pypi packages information finder telegram bot. Made with Python3 (C) @FayasNoushad Copyright permission under MIT License License -> https:

Fayas Noushad 17 Oct 21, 2022