serverless-python-requirements doesn't seem to remove .pyc, .pyo, or other files from lambda zip, irrespective of options specified in serverless.yml

Created on 9 Dec 2019  ·  10Comments  ·  Source: UnitedIncome/serverless-python-requirements

It appears that the serverless-python-requirements plugin is exhibiting some odd behavior. It doesn't appear to be slimming the contents of the package that's deployed to Lambda, and includes the entire contents of the venv directory in the package, irrespective of whether or not athe zip option was selected.

Here's what our serverless.yml looks like:

```service: test
plugins:

  • serverless-python-requirements
    custom:
    pythonRequirements:
    useDownloadCache: false
    useStaticCache: false
    invalidateCaches: true
    zip: true
    slim: true
    slimPatternsAppendDefaults: false # we need to overwrite default dist-info
    slimPatterns:
    # "normal" exclusions:

    • '/tests/'

      # default dist-info with !(lib_name
      ) - matches only if name is not present:

    • "/!(lib_name).dist-info/"

      # the rest of defaults:

    • '/.py[c|o]'

    • '*/__pycache__'

      stage: 'dev'

      package:

      individually: true

      provider:

      name: aws

      runtime: python3.8

      timeout: 20

      region: us-west-2

      functions:

      train-model:

      handler: src/python/aws/lambda/train_model.handler


The reason for the slimPatterns is the following [comment](https://github.com/UnitedIncome/serverless-python-requirements/issues/372):

> I have found a workaround, sadly it's a bit inconvenient to use  At least it works 

slim: true
slimPatternsAppendDefaults: false # we need to overwrite default dist-info
slimPatterns:
  # "normal" exclusions:
  - '**/tests/*'
  # default dist-info with !(lib_name*) - matches only if name is not present:
  - "**/!(lib_name*)*.dist-info/*"
  # the rest of defaults:
  - '**/*.py[c|o]'
  -  '**/__pycache__*'

Okay fine, but even that doesn't seem to work. Now with the zip: true above, I do get the .requirements.zip. Woo hoo! It's ~59 megs. BUT, here's my Serverless package:

$ ls -alh train-model.zip
-rw-r--r-- 1 ryancammer ryancammer 281M Dec 8 20:27 train-model.zip

And why is it so huge?

$ unzip train-model.zip
inflating: venv/lib64/python3.8/site-packages/websocket/tests/__pycache__/test_cookiejar.cpython-38.pyc
inflating: venv/lib64/python3.8/site-packages/websocket/tests/__pycache__/test_websocket.cpython-38.pyc
inflating: venv/lib64/python3.8/site-packages/websocket/tests/data/header01.txt
inflating: venv/lib64/python3.8/site-packages/websocket/tests/data/header02.txt
inflating: venv/lib64/python3.8/site-packages/websocket/tests/test_cookiejar.py
inflating: venv/lib64/python3.8/site-packages/websocket/tests/test_websocket.py
inflating: venv/lib64/python3.8/site-packages/websocket_client-0.56.0.dist-info/INSTALLER
inflating: venv/lib64/python3.8/site-packages/websocket_client-0.56.0.dist-info/LICENSE
inflating: venv/lib64/python3.8/site-packages/websocket_client-0.56.0.dist-info/METADATA
inflating: venv/lib64/python3.8/site-packages/websocket_client-0.56.0.dist-info/RECORD
inflating: venv/lib64/python3.8/site-packages/websocket_client-0.56.0.dist-info/WHEEL
inflating: venv/lib64/python3.8/site-packages/websocket_client-0.56.0.dist-info/top_level.txt
inflating: venv/lib64/python3.8/site-packages/yaml/__init__.py
inflating: venv/lib64/python3.8/site-packages/yaml/__pycache__/__init__.cpython-38.pyc
inflating: venv/lib64/python3.8/site-packages/yaml/__pycache__/composer.cpython-38.pyc
inflating: venv/lib64/python3.8/site-packages/yaml/__pycache__/constructor.cpython-38.pyc
inflating: venv/lib64/python3.8/site-packages/yaml/__pycache__/cyaml.cpython-38.pyc
inflating: venv/lib64/python3.8/site-packages/yaml/__pycache__/dumper.cpython-38.pyc
inflating: venv/lib64/python3.8/site-packages/yaml/__pycache__/emitter.cpython-38.pyc
inflating: venv/lib64/python3.8/site-packages/yaml/__pycache__/error.cpython-38.pyc
inflating: venv/lib64/python3.8/site-packages/yaml/__pycache__/events.cpython-38.pyc
inflating: venv/lib64/python3.8/site-packages/yaml/__pycache__/loader.cpython-38.pyc
inflating: venv/lib64/python3.8/site-packages/yaml/__pycache__/nodes.cpython-38.pyc
inflating: venv/lib64/python3.8/site-packages/yaml/__pycache__/parser.cpython-38.pyc
inflating: venv/lib64/python3.8/site-packages/yaml/__pycache__/reader.cpython-38.pyc
inflating: venv/lib64/python3.8/site-packages/yaml/__pycache__/representer.cpython-38.pyc
inflating: venv/lib64/python3.8/site-packages/yaml/__pycache__/resolver.cpython-38.pyc
inflating: venv/lib64/python3.8/site-packages/yaml/__pycache__/scanner.cpython-38.pyc
inflating: venv/lib64/python3.8/site-packages/yaml/__pycache__/serializer.cpython-38.pyc
inflating: venv/lib64/python3.8/site-packages/yaml/__pycache__/tokens.cpython-38.pyc
inflating: venv/lib64/python3.8/site-packages/yaml/composer.py
inflating: venv/lib64/python3.8/site-packages/yaml/constructor.py
inflating: venv/lib64/python3.8/site-packages/yaml/cyaml.py
inflating: venv/lib64/python3.8/site-packages/yaml/dumper.py
inflating: venv/lib64/python3.8/site-packages/yaml/emitter.py
inflating: venv/lib64/python3.8/site-packages/yaml/error.py
inflating: venv/lib64/python3.8/site-packages/yaml/events.py
inflating: venv/lib64/python3.8/site-packages/yaml/loader.py
inflating: venv/lib64/python3.8/site-packages/yaml/nodes.py
inflating: venv/lib64/python3.8/site-packages/yaml/parser.py
inflating: venv/lib64/python3.8/site-packages/yaml/reader.py
inflating: venv/lib64/python3.8/site-packages/yaml/representer.py
inflating: venv/lib64/python3.8/site-packages/yaml/resolver.py
inflating: venv/lib64/python3.8/site-packages/yaml/scanner.py
inflating: venv/lib64/python3.8/site-packages/yaml/serializer.py
inflating: venv/lib64/python3.8/site-packages/yaml/tokens.py

So basically, the plugin is including the venv directory anyway, .pyc and all. Using `dockerizePip: true`,  this is the result on OSX:

✗ ls -h
-rw-r--r-- 1 cory staff 64M Dec 8 20:46 .requirements.zip
-rw-r--r-- 1 cory staff 76M Dec 8 20:46 train-model.zip
```

Again, that train-model.zip file was chock full of .pyc files. I've tried with and without the slimPatterns, with and without zip: true, but no matter what, the end result is a massive lambda zip that's full of .pyc files.

bug

All 10 comments

I am also having this same problem, on both Linux and MacOS - seems that the slim feature just doesn't work at all. I'm using this with multiple functions specified with the module option.

It's been marked as a bug, and there are several related issues also marked as bug, but would be great to have more information on it in case there's a work-around or if I'll have to figure out another solution.

I'm having this issue as well. slim: true does not seem to do anything.

So, I tried this and I can't replicate this problem. First let me ask, do you guys know that slim _only_ works against the installed requirements? So, after the requirements.txt is handled and all reqs are installed into a subdirectory, then that folder is run through the slim patterns. So slim will not exclude files in your folder already. If you'd like that, serverless has an "excludes" feature built-into it defined at the top-level.

If I'm missing something else here, please explain/show me in more detail.

Eg: it would help me to have a full folder/repo (not just the serverless.yml, include the requirements and any other folders/files (within reason, ofc, feel free to "empty" files if necessary for privacy/sensitivity)) so I can exactly replicate your problem if possible.

@ryancammer / @dashmug / @matthewhanson / anyone else: Please provide more details and/or a repo that highlights this problem so I can debug further

@AndrewFarley I'll post a repro repo later today.

@AndrewFarley Here's the repro: https://github.com/dashmug/serverless-python-requirements-issue-437

Let me know what you think and if there's anything I can help with. Thanks.

@dashmug I tried your repo, the zip looks good to me. It slimmed perfectly. Admittedly, I did modify the serverless.yml a bit though. Also, I didn't use the version of serverless from your package.json, I used the latest release. My serverless.yml has...

custom:
  pythonRequirements:
    dockerizePip: true
    usePoetry: true
    useDownloadCache: true
    useStaticCache: false
    invalidateCaches: false
    slim: true
.serverless$ find ./serverless-python-requirements-issue-437
./serverless-python-requirements-issue-437
./serverless-python-requirements-issue-437/jwt
./serverless-python-requirements-issue-437/jwt/algorithms.py
./serverless-python-requirements-issue-437/jwt/compat.py
./serverless-python-requirements-issue-437/jwt/api_jwt.py
./serverless-python-requirements-issue-437/jwt/__init__.py
./serverless-python-requirements-issue-437/jwt/contrib
./serverless-python-requirements-issue-437/jwt/contrib/algorithms
./serverless-python-requirements-issue-437/jwt/contrib/algorithms/pycrypto.py
./serverless-python-requirements-issue-437/jwt/contrib/algorithms/py_ecdsa.py
./serverless-python-requirements-issue-437/jwt/contrib/algorithms/__init__.py
./serverless-python-requirements-issue-437/jwt/contrib/__init__.py
./serverless-python-requirements-issue-437/jwt/utils.py
./serverless-python-requirements-issue-437/jwt/exceptions.py
./serverless-python-requirements-issue-437/jwt/api_jws.py
./serverless-python-requirements-issue-437/jwt/help.py
./serverless-python-requirements-issue-437/jwt/__main__.py
./serverless-python-requirements-issue-437/paramiko
./serverless-python-requirements-issue-437/paramiko/primes.py
./serverless-python-requirements-issue-437/paramiko/ecdsakey.py
./serverless-python-requirements-issue-437/paramiko/kex_ecdh_nist.py
./serverless-python-requirements-issue-437/paramiko/py3compat.py
./serverless-python-requirements-issue-437/paramiko/server.py
./serverless-python-requirements-issue-437/paramiko/rsakey.py
./serverless-python-requirements-issue-437/paramiko/config.py
./serverless-python-requirements-issue-437/paramiko/auth_handler.py
./serverless-python-requirements-issue-437/paramiko/pkey.py
./serverless-python-requirements-issue-437/paramiko/kex_gss.py
./serverless-python-requirements-issue-437/paramiko/_version.py
./serverless-python-requirements-issue-437/paramiko/sftp_server.py
./serverless-python-requirements-issue-437/paramiko/ed25519key.py
./serverless-python-requirements-issue-437/paramiko/transport.py
./serverless-python-requirements-issue-437/paramiko/kex_group14.py
./serverless-python-requirements-issue-437/paramiko/util.py
./serverless-python-requirements-issue-437/paramiko/proxy.py
./serverless-python-requirements-issue-437/paramiko/kex_gex.py
./serverless-python-requirements-issue-437/paramiko/kex_group1.py
./serverless-python-requirements-issue-437/paramiko/hostkeys.py
./serverless-python-requirements-issue-437/paramiko/client.py
./serverless-python-requirements-issue-437/paramiko/channel.py
./serverless-python-requirements-issue-437/paramiko/ssh_gss.py
./serverless-python-requirements-issue-437/paramiko/sftp_handle.py
./serverless-python-requirements-issue-437/paramiko/__init__.py
./serverless-python-requirements-issue-437/paramiko/_winapi.py
./serverless-python-requirements-issue-437/paramiko/message.py
./serverless-python-requirements-issue-437/paramiko/win_pageant.py
./serverless-python-requirements-issue-437/paramiko/sftp_client.py
./serverless-python-requirements-issue-437/paramiko/sftp_si.py
./serverless-python-requirements-issue-437/paramiko/ber.py
./serverless-python-requirements-issue-437/paramiko/file.py
./serverless-python-requirements-issue-437/paramiko/kex_group16.py
./serverless-python-requirements-issue-437/paramiko/buffered_pipe.py
./serverless-python-requirements-issue-437/paramiko/common.py
./serverless-python-requirements-issue-437/paramiko/compress.py
./serverless-python-requirements-issue-437/paramiko/agent.py
./serverless-python-requirements-issue-437/paramiko/sftp_file.py
./serverless-python-requirements-issue-437/paramiko/packet.py
./serverless-python-requirements-issue-437/paramiko/sftp_attr.py
./serverless-python-requirements-issue-437/paramiko/sftp.py
./serverless-python-requirements-issue-437/paramiko/dsskey.py
./serverless-python-requirements-issue-437/paramiko/kex_curve25519.py
./serverless-python-requirements-issue-437/paramiko/pipe.py
./serverless-python-requirements-issue-437/paramiko/ssh_exception.py
./serverless-python-requirements-issue-437/cffi-1.14.1.dist-info
./serverless-python-requirements-issue-437/urllib3-1.25.10.dist-info
./serverless-python-requirements-issue-437/chardet-3.0.4.dist-info
./serverless-python-requirements-issue-437/dulwich-0.19.14.dist-info
./serverless-python-requirements-issue-437/pymysql
./serverless-python-requirements-issue-437/pymysql/util.py
./serverless-python-requirements-issue-437/pymysql/constants
./serverless-python-requirements-issue-437/pymysql/constants/FLAG.py
./serverless-python-requirements-issue-437/pymysql/constants/COMMAND.py
./serverless-python-requirements-issue-437/pymysql/constants/CLIENT.py
./serverless-python-requirements-issue-437/pymysql/constants/__init__.py
./serverless-python-requirements-issue-437/pymysql/constants/ER.py
./serverless-python-requirements-issue-437/pymysql/constants/CR.py
./serverless-python-requirements-issue-437/pymysql/constants/SERVER_STATUS.py
./serverless-python-requirements-issue-437/pymysql/constants/FIELD_TYPE.py
./serverless-python-requirements-issue-437/pymysql/protocol.py
./serverless-python-requirements-issue-437/pymysql/cursors.py
./serverless-python-requirements-issue-437/pymysql/connections.py
./serverless-python-requirements-issue-437/pymysql/__init__.py
./serverless-python-requirements-issue-437/pymysql/times.py
./serverless-python-requirements-issue-437/pymysql/charset.py
./serverless-python-requirements-issue-437/pymysql/converters.py
./serverless-python-requirements-issue-437/pymysql/_compat.py
./serverless-python-requirements-issue-437/pymysql/_socketio.py
./serverless-python-requirements-issue-437/pymysql/optionfile.py
./serverless-python-requirements-issue-437/pymysql/err.py
./serverless-python-requirements-issue-437/pymysql/_auth.py
./serverless-python-requirements-issue-437/chardet
./serverless-python-requirements-issue-437/chardet/enums.py
./serverless-python-requirements-issue-437/chardet/langhungarianmodel.py
./serverless-python-requirements-issue-437/chardet/mbcssm.py
./serverless-python-requirements-issue-437/chardet/langthaimodel.py
./serverless-python-requirements-issue-437/chardet/version.py
./serverless-python-requirements-issue-437/chardet/compat.py
./serverless-python-requirements-issue-437/chardet/langbulgarianmodel.py
./serverless-python-requirements-issue-437/chardet/euckrprober.py
./serverless-python-requirements-issue-437/chardet/sjisprober.py
./serverless-python-requirements-issue-437/chardet/cp949prober.py
./serverless-python-requirements-issue-437/chardet/__init__.py
./serverless-python-requirements-issue-437/chardet/euctwfreq.py
./serverless-python-requirements-issue-437/chardet/langhebrewmodel.py
./serverless-python-requirements-issue-437/chardet/cli
./serverless-python-requirements-issue-437/chardet/cli/__init__.py
./serverless-python-requirements-issue-437/chardet/cli/chardetect.py
./serverless-python-requirements-issue-437/chardet/chardistribution.py
./serverless-python-requirements-issue-437/chardet/latin1prober.py
./serverless-python-requirements-issue-437/chardet/charsetprober.py
./serverless-python-requirements-issue-437/chardet/gb2312prober.py
./serverless-python-requirements-issue-437/chardet/mbcharsetprober.py
./serverless-python-requirements-issue-437/chardet/langcyrillicmodel.py
./serverless-python-requirements-issue-437/chardet/euctwprober.py
./serverless-python-requirements-issue-437/chardet/codingstatemachine.py
./serverless-python-requirements-issue-437/chardet/escprober.py
./serverless-python-requirements-issue-437/chardet/universaldetector.py
./serverless-python-requirements-issue-437/chardet/utf8prober.py
./serverless-python-requirements-issue-437/chardet/gb2312freq.py
./serverless-python-requirements-issue-437/chardet/mbcsgroupprober.py
./serverless-python-requirements-issue-437/chardet/langgreekmodel.py
./serverless-python-requirements-issue-437/chardet/eucjpprober.py
./serverless-python-requirements-issue-437/chardet/jisfreq.py
./serverless-python-requirements-issue-437/chardet/escsm.py
./serverless-python-requirements-issue-437/chardet/langturkishmodel.py
./serverless-python-requirements-issue-437/chardet/sbcharsetprober.py
./serverless-python-requirements-issue-437/chardet/big5freq.py
./serverless-python-requirements-issue-437/chardet/euckrfreq.py
./serverless-python-requirements-issue-437/chardet/big5prober.py
./serverless-python-requirements-issue-437/chardet/hebrewprober.py
./serverless-python-requirements-issue-437/chardet/charsetgroupprober.py
./serverless-python-requirements-issue-437/chardet/sbcsgroupprober.py
./serverless-python-requirements-issue-437/chardet/jpcntx.py
./serverless-python-requirements-issue-437/certifi-2020.6.20.dist-info
./serverless-python-requirements-issue-437/requirements.txt
./serverless-python-requirements-issue-437/pycparser
./serverless-python-requirements-issue-437/pycparser/ply
./serverless-python-requirements-issue-437/pycparser/ply/yacc.py
./serverless-python-requirements-issue-437/pycparser/ply/lex.py
./serverless-python-requirements-issue-437/pycparser/ply/ctokens.py
./serverless-python-requirements-issue-437/pycparser/ply/__init__.py
./serverless-python-requirements-issue-437/pycparser/ply/cpp.py
./serverless-python-requirements-issue-437/pycparser/ply/ygen.py
./serverless-python-requirements-issue-437/pycparser/c_parser.py
./serverless-python-requirements-issue-437/pycparser/_ast_gen.py
./serverless-python-requirements-issue-437/pycparser/__init__.py
./serverless-python-requirements-issue-437/pycparser/_c_ast.cfg
./serverless-python-requirements-issue-437/pycparser/c_ast.py
./serverless-python-requirements-issue-437/pycparser/plyparser.py
./serverless-python-requirements-issue-437/pycparser/_build_tables.py
./serverless-python-requirements-issue-437/pycparser/ast_transforms.py
./serverless-python-requirements-issue-437/pycparser/yacctab.py
./serverless-python-requirements-issue-437/pycparser/c_generator.py
./serverless-python-requirements-issue-437/pycparser/c_lexer.py
./serverless-python-requirements-issue-437/pycparser/lextab.py
./serverless-python-requirements-issue-437/six-1.15.0.dist-info
./serverless-python-requirements-issue-437/wrapt-1.12.1.dist-info
./serverless-python-requirements-issue-437/bin
./serverless-python-requirements-issue-437/bin/dul-receive-pack
./serverless-python-requirements-issue-437/bin/chardetect
./serverless-python-requirements-issue-437/bin/pyjwt
./serverless-python-requirements-issue-437/bin/dul-upload-pack
./serverless-python-requirements-issue-437/bin/dulwich
./serverless-python-requirements-issue-437/paramiko-2.7.1.dist-info
./serverless-python-requirements-issue-437/idna-2.10.dist-info
./serverless-python-requirements-issue-437/pycparser-2.20.dist-info
./serverless-python-requirements-issue-437/cryptography
./serverless-python-requirements-issue-437/cryptography/hazmat
./serverless-python-requirements-issue-437/cryptography/hazmat/_der.py
./serverless-python-requirements-issue-437/cryptography/hazmat/backends
./serverless-python-requirements-issue-437/cryptography/hazmat/backends/interfaces.py
./serverless-python-requirements-issue-437/cryptography/hazmat/backends/__init__.py
./serverless-python-requirements-issue-437/cryptography/hazmat/backends/openssl
./serverless-python-requirements-issue-437/cryptography/hazmat/backends/openssl/x448.py
./serverless-python-requirements-issue-437/cryptography/hazmat/backends/openssl/backend.py
./serverless-python-requirements-issue-437/cryptography/hazmat/backends/openssl/ec.py
./serverless-python-requirements-issue-437/cryptography/hazmat/backends/openssl/ciphers.py
./serverless-python-requirements-issue-437/cryptography/hazmat/backends/openssl/ocsp.py
./serverless-python-requirements-issue-437/cryptography/hazmat/backends/openssl/x509.py
./serverless-python-requirements-issue-437/cryptography/hazmat/backends/openssl/aead.py
./serverless-python-requirements-issue-437/cryptography/hazmat/backends/openssl/encode_asn1.py
./serverless-python-requirements-issue-437/cryptography/hazmat/backends/openssl/rsa.py
./serverless-python-requirements-issue-437/cryptography/hazmat/backends/openssl/dh.py
./serverless-python-requirements-issue-437/cryptography/hazmat/backends/openssl/cmac.py
./serverless-python-requirements-issue-437/cryptography/hazmat/backends/openssl/__init__.py
./serverless-python-requirements-issue-437/cryptography/hazmat/backends/openssl/utils.py
./serverless-python-requirements-issue-437/cryptography/hazmat/backends/openssl/poly1305.py
./serverless-python-requirements-issue-437/cryptography/hazmat/backends/openssl/ed25519.py
./serverless-python-requirements-issue-437/cryptography/hazmat/backends/openssl/dsa.py
./serverless-python-requirements-issue-437/cryptography/hazmat/backends/openssl/decode_asn1.py
./serverless-python-requirements-issue-437/cryptography/hazmat/backends/openssl/hmac.py
./serverless-python-requirements-issue-437/cryptography/hazmat/backends/openssl/ed448.py
./serverless-python-requirements-issue-437/cryptography/hazmat/backends/openssl/x25519.py
./serverless-python-requirements-issue-437/cryptography/hazmat/backends/openssl/hashes.py
./serverless-python-requirements-issue-437/cryptography/hazmat/__init__.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/kdf
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/kdf/__init__.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/kdf/scrypt.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/kdf/pbkdf2.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/kdf/hkdf.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/kdf/x963kdf.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/kdf/kbkdf.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/kdf/concatkdf.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/twofactor
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/twofactor/totp.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/twofactor/__init__.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/twofactor/hotp.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/twofactor/utils.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/serialization
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/serialization/__init__.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/serialization/pkcs12.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/serialization/ssh.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/serialization/base.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/cmac.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/__init__.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/poly1305.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/ciphers
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/ciphers/algorithms.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/ciphers/aead.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/ciphers/__init__.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/ciphers/modes.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/ciphers/base.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/constant_time.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/asymmetric
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/asymmetric/x448.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/asymmetric/ec.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/asymmetric/rsa.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/asymmetric/dh.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/asymmetric/__init__.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/asymmetric/utils.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/asymmetric/ed25519.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/asymmetric/dsa.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/asymmetric/ed448.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/asymmetric/x25519.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/asymmetric/padding.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/keywrap.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/hmac.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/hashes.py
./serverless-python-requirements-issue-437/cryptography/hazmat/primitives/padding.py
./serverless-python-requirements-issue-437/cryptography/hazmat/_oid.py
./serverless-python-requirements-issue-437/cryptography/hazmat/bindings
./serverless-python-requirements-issue-437/cryptography/hazmat/bindings/_padding.abi3.so
./serverless-python-requirements-issue-437/cryptography/hazmat/bindings/_openssl.abi3.so
./serverless-python-requirements-issue-437/cryptography/hazmat/bindings/__init__.py
./serverless-python-requirements-issue-437/cryptography/hazmat/bindings/openssl
./serverless-python-requirements-issue-437/cryptography/hazmat/bindings/openssl/__init__.py
./serverless-python-requirements-issue-437/cryptography/hazmat/bindings/openssl/_conditional.py
./serverless-python-requirements-issue-437/cryptography/hazmat/bindings/openssl/binding.py
./serverless-python-requirements-issue-437/cryptography/__init__.py
./serverless-python-requirements-issue-437/cryptography/x509
./serverless-python-requirements-issue-437/cryptography/x509/oid.py
./serverless-python-requirements-issue-437/cryptography/x509/ocsp.py
./serverless-python-requirements-issue-437/cryptography/x509/general_name.py
./serverless-python-requirements-issue-437/cryptography/x509/__init__.py
./serverless-python-requirements-issue-437/cryptography/x509/extensions.py
./serverless-python-requirements-issue-437/cryptography/x509/name.py
./serverless-python-requirements-issue-437/cryptography/x509/base.py
./serverless-python-requirements-issue-437/cryptography/x509/certificate_transparency.py
./serverless-python-requirements-issue-437/cryptography/utils.py
./serverless-python-requirements-issue-437/cryptography/__about__.py
./serverless-python-requirements-issue-437/cryptography/exceptions.py
./serverless-python-requirements-issue-437/cryptography/fernet.py
./serverless-python-requirements-issue-437/PyPika-0.38.0.dist-info
./serverless-python-requirements-issue-437/_cffi_backend.cpython-38-x86_64-linux-gnu.so
./serverless-python-requirements-issue-437/bcrypt
./serverless-python-requirements-issue-437/bcrypt/__init__.py
./serverless-python-requirements-issue-437/bcrypt/_bcrypt.abi3.so
./serverless-python-requirements-issue-437/bcrypt/__about__.py
./serverless-python-requirements-issue-437/cffi
./serverless-python-requirements-issue-437/cffi/_cffi_include.h
./serverless-python-requirements-issue-437/cffi/backend_ctypes.py
./serverless-python-requirements-issue-437/cffi/error.py
./serverless-python-requirements-issue-437/cffi/setuptools_ext.py
./serverless-python-requirements-issue-437/cffi/_cffi_errors.h
./serverless-python-requirements-issue-437/cffi/__init__.py
./serverless-python-requirements-issue-437/cffi/cffi_opcode.py
./serverless-python-requirements-issue-437/cffi/vengine_gen.py
./serverless-python-requirements-issue-437/cffi/pkgconfig.py
./serverless-python-requirements-issue-437/cffi/model.py
./serverless-python-requirements-issue-437/cffi/ffiplatform.py
./serverless-python-requirements-issue-437/cffi/api.py
./serverless-python-requirements-issue-437/cffi/vengine_cpy.py
./serverless-python-requirements-issue-437/cffi/_embedding.h
./serverless-python-requirements-issue-437/cffi/commontypes.py
./serverless-python-requirements-issue-437/cffi/lock.py
./serverless-python-requirements-issue-437/cffi/recompiler.py
./serverless-python-requirements-issue-437/cffi/cparser.py
./serverless-python-requirements-issue-437/cffi/verifier.py
./serverless-python-requirements-issue-437/cffi/parse_c_type.h
./serverless-python-requirements-issue-437/PyGithub-1.51.dist-info
./serverless-python-requirements-issue-437/idna
./serverless-python-requirements-issue-437/idna/intranges.py
./serverless-python-requirements-issue-437/idna/package_data.py
./serverless-python-requirements-issue-437/idna/compat.py
./serverless-python-requirements-issue-437/idna/idnadata.py
./serverless-python-requirements-issue-437/idna/__init__.py
./serverless-python-requirements-issue-437/idna/core.py
./serverless-python-requirements-issue-437/idna/codec.py
./serverless-python-requirements-issue-437/idna/uts46data.py
./serverless-python-requirements-issue-437/docs
./serverless-python-requirements-issue-437/docs/tutorial
./serverless-python-requirements-issue-437/docs/tutorial/object-store.txt
./serverless-python-requirements-issue-437/docs/tutorial/porcelain.txt
./serverless-python-requirements-issue-437/docs/tutorial/tag.txt
./serverless-python-requirements-issue-437/docs/tutorial/remote.txt
./serverless-python-requirements-issue-437/docs/tutorial/encoding.txt
./serverless-python-requirements-issue-437/docs/tutorial/index.txt
./serverless-python-requirements-issue-437/docs/tutorial/conclusion.txt
./serverless-python-requirements-issue-437/docs/tutorial/repo.txt
./serverless-python-requirements-issue-437/docs/tutorial/introduction.txt
./serverless-python-requirements-issue-437/docs/tutorial/file-format.txt
./serverless-python-requirements-issue-437/PyMySQL-0.10.0.dist-info
./serverless-python-requirements-issue-437/Deprecated-1.2.10.dist-info
./serverless-python-requirements-issue-437/wrapt
./serverless-python-requirements-issue-437/wrapt/importer.py
./serverless-python-requirements-issue-437/wrapt/_wrappers.cpython-38-x86_64-linux-gnu.so
./serverless-python-requirements-issue-437/wrapt/__init__.py
./serverless-python-requirements-issue-437/wrapt/wrappers.py
./serverless-python-requirements-issue-437/wrapt/decorators.py
./serverless-python-requirements-issue-437/requests
./serverless-python-requirements-issue-437/requests/cookies.py
./serverless-python-requirements-issue-437/requests/auth.py
./serverless-python-requirements-issue-437/requests/sessions.py
./serverless-python-requirements-issue-437/requests/hooks.py
./serverless-python-requirements-issue-437/requests/compat.py
./serverless-python-requirements-issue-437/requests/models.py
./serverless-python-requirements-issue-437/requests/certs.py
./serverless-python-requirements-issue-437/requests/__init__.py
./serverless-python-requirements-issue-437/requests/status_codes.py
./serverless-python-requirements-issue-437/requests/packages.py
./serverless-python-requirements-issue-437/requests/__version__.py
./serverless-python-requirements-issue-437/requests/api.py
./serverless-python-requirements-issue-437/requests/_internal_utils.py
./serverless-python-requirements-issue-437/requests/utils.py
./serverless-python-requirements-issue-437/requests/exceptions.py
./serverless-python-requirements-issue-437/requests/structures.py
./serverless-python-requirements-issue-437/requests/help.py
./serverless-python-requirements-issue-437/requests/adapters.py
./serverless-python-requirements-issue-437/PyNaCl-1.4.0.dist-info
./serverless-python-requirements-issue-437/requirements.zip
./serverless-python-requirements-issue-437/pypika
./serverless-python-requirements-issue-437/pypika/terms.py
./serverless-python-requirements-issue-437/pypika/functions.py
./serverless-python-requirements-issue-437/pypika/clickhouse
./serverless-python-requirements-issue-437/pypika/clickhouse/search_string.py
./serverless-python-requirements-issue-437/pypika/clickhouse/__init__.py
./serverless-python-requirements-issue-437/pypika/clickhouse/type_conversion.py
./serverless-python-requirements-issue-437/pypika/clickhouse/condition.py
./serverless-python-requirements-issue-437/pypika/clickhouse/dates_and_times.py
./serverless-python-requirements-issue-437/pypika/clickhouse/nullable_arg.py
./serverless-python-requirements-issue-437/pypika/clickhouse/array.py
./serverless-python-requirements-issue-437/pypika/enums.py
./serverless-python-requirements-issue-437/pypika/__init__.py
./serverless-python-requirements-issue-437/pypika/utils.py
./serverless-python-requirements-issue-437/pypika/dialects.py
./serverless-python-requirements-issue-437/pypika/queries.py
./serverless-python-requirements-issue-437/pypika/analytics.py
./serverless-python-requirements-issue-437/pypika/pseudocolumns.py
./serverless-python-requirements-issue-437/certifi
./serverless-python-requirements-issue-437/certifi/__init__.py
./serverless-python-requirements-issue-437/certifi/core.py
./serverless-python-requirements-issue-437/certifi/cacert.pem
./serverless-python-requirements-issue-437/certifi/__main__.py
./serverless-python-requirements-issue-437/requests-2.24.0.dist-info
./serverless-python-requirements-issue-437/github
./serverless-python-requirements-issue-437/github/TimelineEvent.py
./serverless-python-requirements-issue-437/github/Gist.pyi
./serverless-python-requirements-issue-437/github/Referrer.py
./serverless-python-requirements-issue-437/github/NotificationSubject.pyi
./serverless-python-requirements-issue-437/github/GitTree.pyi
./serverless-python-requirements-issue-437/github/PullRequestReview.py
./serverless-python-requirements-issue-437/github/CommitCombinedStatus.py
./serverless-python-requirements-issue-437/github/Plan.py
./serverless-python-requirements-issue-437/github/TeamDiscussion.pyi
./serverless-python-requirements-issue-437/github/StatsCodeFrequency.pyi
./serverless-python-requirements-issue-437/github/RequiredPullRequestReviews.pyi
./serverless-python-requirements-issue-437/github/View.pyi
./serverless-python-requirements-issue-437/github/PullRequestComment.py
./serverless-python-requirements-issue-437/github/CommitStatus.py
./serverless-python-requirements-issue-437/github/Membership.pyi
./serverless-python-requirements-issue-437/github/StatsParticipation.pyi
./serverless-python-requirements-issue-437/github/Event.py
./serverless-python-requirements-issue-437/github/Rate.pyi
./serverless-python-requirements-issue-437/github/GitRef.py
./serverless-python-requirements-issue-437/github/GitReleaseAsset.py
./serverless-python-requirements-issue-437/github/IssueEvent.pyi
./serverless-python-requirements-issue-437/github/AuthorizationApplication.py
./serverless-python-requirements-issue-437/github/License.pyi
./serverless-python-requirements-issue-437/github/GitObject.py
./serverless-python-requirements-issue-437/github/Clones.py
./serverless-python-requirements-issue-437/github/Branch.pyi
./serverless-python-requirements-issue-437/github/IssuePullRequest.pyi
./serverless-python-requirements-issue-437/github/GitRef.pyi
./serverless-python-requirements-issue-437/github/HookDescription.py
./serverless-python-requirements-issue-437/github/PaginatedList.pyi
./serverless-python-requirements-issue-437/github/AuthorizationApplication.pyi
./serverless-python-requirements-issue-437/github/GitBlob.pyi
./serverless-python-requirements-issue-437/github/Project.pyi
./serverless-python-requirements-issue-437/github/PullRequest.py
./serverless-python-requirements-issue-437/github/GitignoreTemplate.py
./serverless-python-requirements-issue-437/github/Installation.pyi
./serverless-python-requirements-issue-437/github/StatsPunchCard.pyi
./serverless-python-requirements-issue-437/github/NamedUser.py
./serverless-python-requirements-issue-437/github/Deployment.py
./serverless-python-requirements-issue-437/github/IssueEvent.py
./serverless-python-requirements-issue-437/github/__init__.pyi
./serverless-python-requirements-issue-437/github/GistComment.py
./serverless-python-requirements-issue-437/github/TeamDiscussion.py
./serverless-python-requirements-issue-437/github/GithubException.py
./serverless-python-requirements-issue-437/github/StatsPunchCard.py
./serverless-python-requirements-issue-437/github/Repository.pyi
./serverless-python-requirements-issue-437/github/GitTag.py
./serverless-python-requirements-issue-437/github/NamedUser.pyi
./serverless-python-requirements-issue-437/github/GithubObject.pyi
./serverless-python-requirements-issue-437/github/ContentFile.pyi
./serverless-python-requirements-issue-437/github/Organization.py
./serverless-python-requirements-issue-437/github/PullRequestMergeStatus.py
./serverless-python-requirements-issue-437/github/Stargazer.pyi
./serverless-python-requirements-issue-437/github/Rate.py
./serverless-python-requirements-issue-437/github/Notification.py
./serverless-python-requirements-issue-437/github/Organization.pyi
./serverless-python-requirements-issue-437/github/GistFile.py
./serverless-python-requirements-issue-437/github/Installation.py
./serverless-python-requirements-issue-437/github/UserKey.py
./serverless-python-requirements-issue-437/github/CommitComment.py
./serverless-python-requirements-issue-437/github/Plan.pyi
./serverless-python-requirements-issue-437/github/Download.py
./serverless-python-requirements-issue-437/github/PullRequestComment.pyi
./serverless-python-requirements-issue-437/github/Migration.pyi
./serverless-python-requirements-issue-437/github/CommitStatus.pyi
./serverless-python-requirements-issue-437/github/Deployment.pyi
./serverless-python-requirements-issue-437/github/ProjectColumn.py
./serverless-python-requirements-issue-437/github/TimelineEventSource.pyi
./serverless-python-requirements-issue-437/github/PullRequest.pyi
./serverless-python-requirements-issue-437/github/Notification.pyi
./serverless-python-requirements-issue-437/github/GithubException.pyi
./serverless-python-requirements-issue-437/github/Invitation.pyi
./serverless-python-requirements-issue-437/github/ProjectCard.py
./serverless-python-requirements-issue-437/github/PullRequestMergeStatus.pyi
./serverless-python-requirements-issue-437/github/InputGitAuthor.pyi
./serverless-python-requirements-issue-437/github/Commit.py
./serverless-python-requirements-issue-437/github/Stargazer.py
./serverless-python-requirements-issue-437/github/InputFileContent.py
./serverless-python-requirements-issue-437/github/GitTree.py
./serverless-python-requirements-issue-437/github/Hook.py
./serverless-python-requirements-issue-437/github/__init__.py
./serverless-python-requirements-issue-437/github/GitTreeElement.py
./serverless-python-requirements-issue-437/github/GistFile.pyi
./serverless-python-requirements-issue-437/github/GitCommit.pyi
./serverless-python-requirements-issue-437/github/PullRequestPart.py
./serverless-python-requirements-issue-437/github/Branch.py
./serverless-python-requirements-issue-437/github/RateLimit.pyi
./serverless-python-requirements-issue-437/github/RepositoryKey.pyi
./serverless-python-requirements-issue-437/github/Requester.py
./serverless-python-requirements-issue-437/github/AuthenticatedUser.py
./serverless-python-requirements-issue-437/github/RequiredPullRequestReviews.py
./serverless-python-requirements-issue-437/github/RateLimit.py
./serverless-python-requirements-issue-437/github/Authorization.pyi
./serverless-python-requirements-issue-437/github/GitCommit.py
./serverless-python-requirements-issue-437/github/InstallationAuthorization.py
./serverless-python-requirements-issue-437/github/Team.py
./serverless-python-requirements-issue-437/github/GitAuthor.py
./serverless-python-requirements-issue-437/github/GistHistoryState.py
./serverless-python-requirements-issue-437/github/Topic.pyi
./serverless-python-requirements-issue-437/github/Consts.py
./serverless-python-requirements-issue-437/github/GitObject.pyi
./serverless-python-requirements-issue-437/github/Comparison.py
./serverless-python-requirements-issue-437/github/RequiredStatusChecks.pyi
./serverless-python-requirements-issue-437/github/StatsContributor.pyi
./serverless-python-requirements-issue-437/github/File.py
./serverless-python-requirements-issue-437/github/Authorization.py
./serverless-python-requirements-issue-437/github/InputFileContent.pyi
./serverless-python-requirements-issue-437/github/GitRelease.py
./serverless-python-requirements-issue-437/github/StatsCommitActivity.pyi
./serverless-python-requirements-issue-437/github/TimelineEventSource.py
./serverless-python-requirements-issue-437/github/View.py
./serverless-python-requirements-issue-437/github/TimelineEvent.pyi
./serverless-python-requirements-issue-437/github/SourceImport.pyi
./serverless-python-requirements-issue-437/github/GitTag.pyi
./serverless-python-requirements-issue-437/github/Download.pyi
./serverless-python-requirements-issue-437/github/GitBlob.py
./serverless-python-requirements-issue-437/github/Gist.py
./serverless-python-requirements-issue-437/github/BranchProtection.py
./serverless-python-requirements-issue-437/github/Referrer.pyi
./serverless-python-requirements-issue-437/github/Label.py
./serverless-python-requirements-issue-437/github/Reaction.pyi
./serverless-python-requirements-issue-437/github/Event.pyi
./serverless-python-requirements-issue-437/github/GistHistoryState.pyi
./serverless-python-requirements-issue-437/github/GithubObject.py
./serverless-python-requirements-issue-437/github/AuthenticatedUser.pyi
./serverless-python-requirements-issue-437/github/HookResponse.py
./serverless-python-requirements-issue-437/github/CommitStats.py
./serverless-python-requirements-issue-437/github/Milestone.pyi
./serverless-python-requirements-issue-437/github/HookDescription.pyi
./serverless-python-requirements-issue-437/github/Topic.py
./serverless-python-requirements-issue-437/github/CommitCombinedStatus.pyi
./serverless-python-requirements-issue-437/github/ContentFile.py
./serverless-python-requirements-issue-437/github/StatsContributor.py
./serverless-python-requirements-issue-437/github/Permissions.py
./serverless-python-requirements-issue-437/github/py.typed
./serverless-python-requirements-issue-437/github/RepositoryKey.py
./serverless-python-requirements-issue-437/github/GistComment.pyi
./serverless-python-requirements-issue-437/github/GitReleaseAsset.pyi
./serverless-python-requirements-issue-437/github/CommitComment.pyi
./serverless-python-requirements-issue-437/github/StatsCodeFrequency.py
./serverless-python-requirements-issue-437/github/PullRequestPart.pyi
./serverless-python-requirements-issue-437/github/Team.pyi
./serverless-python-requirements-issue-437/github/License.py
./serverless-python-requirements-issue-437/github/InstallationAuthorization.pyi
./serverless-python-requirements-issue-437/github/IssuePullRequest.py
./serverless-python-requirements-issue-437/github/SourceImport.py
./serverless-python-requirements-issue-437/github/Invitation.py
./serverless-python-requirements-issue-437/github/StatsCommitActivity.py
./serverless-python-requirements-issue-437/github/IssueComment.pyi
./serverless-python-requirements-issue-437/github/InputGitAuthor.py
./serverless-python-requirements-issue-437/github/Clones.pyi
./serverless-python-requirements-issue-437/github/PullRequestReview.pyi
./serverless-python-requirements-issue-437/github/Milestone.py
./serverless-python-requirements-issue-437/github/Comparison.pyi
./serverless-python-requirements-issue-437/github/Issue.py
./serverless-python-requirements-issue-437/github/ProjectColumn.pyi
./serverless-python-requirements-issue-437/github/Path.pyi
./serverless-python-requirements-issue-437/github/GitTreeElement.pyi
./serverless-python-requirements-issue-437/github/CommitStats.pyi
./serverless-python-requirements-issue-437/github/UserKey.pyi
./serverless-python-requirements-issue-437/github/InputGitTreeElement.pyi
./serverless-python-requirements-issue-437/github/Commit.pyi
./serverless-python-requirements-issue-437/github/HookResponse.pyi
./serverless-python-requirements-issue-437/github/Repository.py
./serverless-python-requirements-issue-437/github/RequiredStatusChecks.py
./serverless-python-requirements-issue-437/github/Migration.py
./serverless-python-requirements-issue-437/github/Membership.py
./serverless-python-requirements-issue-437/github/MainClass.pyi
./serverless-python-requirements-issue-437/github/Path.py
./serverless-python-requirements-issue-437/github/Tag.pyi
./serverless-python-requirements-issue-437/github/NotificationSubject.py
./serverless-python-requirements-issue-437/github/Issue.pyi
./serverless-python-requirements-issue-437/github/GitAuthor.pyi
./serverless-python-requirements-issue-437/github/IssueComment.py
./serverless-python-requirements-issue-437/github/Project.py
./serverless-python-requirements-issue-437/github/Tag.py
./serverless-python-requirements-issue-437/github/File.pyi
./serverless-python-requirements-issue-437/github/StatsParticipation.py
./serverless-python-requirements-issue-437/github/BranchProtection.pyi
./serverless-python-requirements-issue-437/github/ProjectCard.pyi
./serverless-python-requirements-issue-437/github/Label.pyi
./serverless-python-requirements-issue-437/github/GitignoreTemplate.pyi
./serverless-python-requirements-issue-437/github/Reaction.py
./serverless-python-requirements-issue-437/github/PaginatedList.py
./serverless-python-requirements-issue-437/github/Requester.pyi
./serverless-python-requirements-issue-437/github/Hook.pyi
./serverless-python-requirements-issue-437/github/InputGitTreeElement.py
./serverless-python-requirements-issue-437/github/Permissions.pyi
./serverless-python-requirements-issue-437/github/GitRelease.pyi
./serverless-python-requirements-issue-437/github/MainClass.py
./serverless-python-requirements-issue-437/PyJWT-1.7.1.dist-info
./serverless-python-requirements-issue-437/bcrypt-3.1.7.dist-info
./serverless-python-requirements-issue-437/nacl
./serverless-python-requirements-issue-437/nacl/signing.py
./serverless-python-requirements-issue-437/nacl/public.py
./serverless-python-requirements-issue-437/nacl/encoding.py
./serverless-python-requirements-issue-437/nacl/hashlib.py
./serverless-python-requirements-issue-437/nacl/__init__.py
./serverless-python-requirements-issue-437/nacl/hash.py
./serverless-python-requirements-issue-437/nacl/secret.py
./serverless-python-requirements-issue-437/nacl/utils.py
./serverless-python-requirements-issue-437/nacl/exceptions.py
./serverless-python-requirements-issue-437/nacl/bindings
./serverless-python-requirements-issue-437/nacl/bindings/crypto_hash.py
./serverless-python-requirements-issue-437/nacl/bindings/crypto_generichash.py
./serverless-python-requirements-issue-437/nacl/bindings/sodium_core.py
./serverless-python-requirements-issue-437/nacl/bindings/randombytes.py
./serverless-python-requirements-issue-437/nacl/bindings/crypto_kx.py
./serverless-python-requirements-issue-437/nacl/bindings/__init__.py
./serverless-python-requirements-issue-437/nacl/bindings/crypto_sign.py
./serverless-python-requirements-issue-437/nacl/bindings/crypto_secretstream.py
./serverless-python-requirements-issue-437/nacl/bindings/crypto_aead.py
./serverless-python-requirements-issue-437/nacl/bindings/utils.py
./serverless-python-requirements-issue-437/nacl/bindings/crypto_scalarmult.py
./serverless-python-requirements-issue-437/nacl/bindings/crypto_box.py
./serverless-python-requirements-issue-437/nacl/bindings/crypto_secretbox.py
./serverless-python-requirements-issue-437/nacl/bindings/crypto_pwhash.py
./serverless-python-requirements-issue-437/nacl/bindings/crypto_core.py
./serverless-python-requirements-issue-437/nacl/bindings/crypto_shorthash.py
./serverless-python-requirements-issue-437/nacl/pwhash
./serverless-python-requirements-issue-437/nacl/pwhash/__init__.py
./serverless-python-requirements-issue-437/nacl/pwhash/argon2i.py
./serverless-python-requirements-issue-437/nacl/pwhash/scrypt.py
./serverless-python-requirements-issue-437/nacl/pwhash/_argon2.py
./serverless-python-requirements-issue-437/nacl/pwhash/argon2id.py
./serverless-python-requirements-issue-437/nacl/_sodium.abi3.so
./serverless-python-requirements-issue-437/six.py
./serverless-python-requirements-issue-437/urllib3
./serverless-python-requirements-issue-437/urllib3/filepost.py
./serverless-python-requirements-issue-437/urllib3/fields.py
./serverless-python-requirements-issue-437/urllib3/util
./serverless-python-requirements-issue-437/urllib3/util/queue.py
./serverless-python-requirements-issue-437/urllib3/util/wait.py
./serverless-python-requirements-issue-437/urllib3/util/request.py
./serverless-python-requirements-issue-437/urllib3/util/timeout.py
./serverless-python-requirements-issue-437/urllib3/util/__init__.py
./serverless-python-requirements-issue-437/urllib3/util/response.py
./serverless-python-requirements-issue-437/urllib3/util/ssl_.py
./serverless-python-requirements-issue-437/urllib3/util/retry.py
./serverless-python-requirements-issue-437/urllib3/util/url.py
./serverless-python-requirements-issue-437/urllib3/util/connection.py
./serverless-python-requirements-issue-437/urllib3/_version.py
./serverless-python-requirements-issue-437/urllib3/request.py
./serverless-python-requirements-issue-437/urllib3/__init__.py
./serverless-python-requirements-issue-437/urllib3/poolmanager.py
./serverless-python-requirements-issue-437/urllib3/response.py
./serverless-python-requirements-issue-437/urllib3/contrib
./serverless-python-requirements-issue-437/urllib3/contrib/securetransport.py
./serverless-python-requirements-issue-437/urllib3/contrib/__init__.py
./serverless-python-requirements-issue-437/urllib3/contrib/socks.py
./serverless-python-requirements-issue-437/urllib3/contrib/_appengine_environ.py
./serverless-python-requirements-issue-437/urllib3/contrib/pyopenssl.py
./serverless-python-requirements-issue-437/urllib3/contrib/appengine.py
./serverless-python-requirements-issue-437/urllib3/contrib/_securetransport
./serverless-python-requirements-issue-437/urllib3/contrib/_securetransport/__init__.py
./serverless-python-requirements-issue-437/urllib3/contrib/_securetransport/low_level.py
./serverless-python-requirements-issue-437/urllib3/contrib/_securetransport/bindings.py
./serverless-python-requirements-issue-437/urllib3/contrib/ntlmpool.py
./serverless-python-requirements-issue-437/urllib3/connection.py
./serverless-python-requirements-issue-437/urllib3/_collections.py
./serverless-python-requirements-issue-437/urllib3/packages
./serverless-python-requirements-issue-437/urllib3/packages/__init__.py
./serverless-python-requirements-issue-437/urllib3/packages/backports
./serverless-python-requirements-issue-437/urllib3/packages/backports/__init__.py
./serverless-python-requirements-issue-437/urllib3/packages/backports/makefile.py
./serverless-python-requirements-issue-437/urllib3/packages/six.py
./serverless-python-requirements-issue-437/urllib3/packages/ssl_match_hostname
./serverless-python-requirements-issue-437/urllib3/packages/ssl_match_hostname/__init__.py
./serverless-python-requirements-issue-437/urllib3/packages/ssl_match_hostname/_implementation.py
./serverless-python-requirements-issue-437/urllib3/exceptions.py
./serverless-python-requirements-issue-437/urllib3/connectionpool.py
./serverless-python-requirements-issue-437/cffi.libs
./serverless-python-requirements-issue-437/cffi.libs/libffi-806b1a9d.so.6.0.4
./serverless-python-requirements-issue-437/cryptography-3.0.dist-info
./serverless-python-requirements-issue-437/deprecated
./serverless-python-requirements-issue-437/deprecated/sphinx.py
./serverless-python-requirements-issue-437/deprecated/__init__.py
./serverless-python-requirements-issue-437/deprecated/classic.py
./serverless-python-requirements-issue-437/dulwich
./serverless-python-requirements-issue-437/dulwich/pack.py
./serverless-python-requirements-issue-437/dulwich/patch.py
./serverless-python-requirements-issue-437/dulwich/objectspec.py
./serverless-python-requirements-issue-437/dulwich/lru_cache.py
./serverless-python-requirements-issue-437/dulwich/hooks.py
./serverless-python-requirements-issue-437/dulwich/server.py
./serverless-python-requirements-issue-437/dulwich/reflog.py
./serverless-python-requirements-issue-437/dulwich/web.py
./serverless-python-requirements-issue-437/dulwich/config.py
./serverless-python-requirements-issue-437/dulwich/mailmap.py
./serverless-python-requirements-issue-437/dulwich/diff_tree.py
./serverless-python-requirements-issue-437/dulwich/index.py
./serverless-python-requirements-issue-437/dulwich/log_utils.py
./serverless-python-requirements-issue-437/dulwich/protocol.py
./serverless-python-requirements-issue-437/dulwich/client.py
./serverless-python-requirements-issue-437/dulwich/tests
./serverless-python-requirements-issue-437/dulwich/__init__.py
./serverless-python-requirements-issue-437/dulwich/stash.py
./serverless-python-requirements-issue-437/dulwich/contrib
./serverless-python-requirements-issue-437/dulwich/contrib/test_swift.py
./serverless-python-requirements-issue-437/dulwich/contrib/test_swift_smoke.py
./serverless-python-requirements-issue-437/dulwich/contrib/__init__.py
./serverless-python-requirements-issue-437/dulwich/contrib/paramiko_vendor.py
./serverless-python-requirements-issue-437/dulwich/contrib/test_release_robot.py
./serverless-python-requirements-issue-437/dulwich/contrib/release_robot.py
./serverless-python-requirements-issue-437/dulwich/contrib/swift.py
./serverless-python-requirements-issue-437/dulwich/porcelain.py
./serverless-python-requirements-issue-437/dulwich/ignore.py
./serverless-python-requirements-issue-437/dulwich/fastexport.py
./serverless-python-requirements-issue-437/dulwich/walk.py
./serverless-python-requirements-issue-437/dulwich/file.py
./serverless-python-requirements-issue-437/dulwich/repo.py
./serverless-python-requirements-issue-437/dulwich/archive.py
./serverless-python-requirements-issue-437/dulwich/refs.py
./serverless-python-requirements-issue-437/dulwich/errors.py
./serverless-python-requirements-issue-437/dulwich/greenthreads.py
./serverless-python-requirements-issue-437/dulwich/objects.py
./serverless-python-requirements-issue-437/dulwich/stdint.h
./serverless-python-requirements-issue-437/dulwich/line_ending.py
./serverless-python-requirements-issue-437/dulwich/object_store.py

I am also hitting this issue. I narrowed it down considerably. It appears that pymysql is causing the package to not slim. I have:

  pythonRequirements:
    slim: true
    usePoetry: true
    strip: false

Narrowed it down:

"slim: true" fails on pymysql unless "useStaticCache: false."

@bsamuel-ui

I am also hitting this issue. I don't know if it helps but can describe how it happened:

  1. Setup serverless application and deploy a function with this config:
custom:
  pythonRequirements:
    dockerizePip: non-linux

    layer: true

And this point everything is working fine 🚀

  1. Change config to this one (just added slim: true):
custom:
  pythonRequirements:
    dockerizePip: non-linux

    layer: true

    slim: true

And I noticed that I don't have Docker running anymore (I am using macOS + dockerizePip: non-linux) and also useless files don't get removed from the ZIP according to the documentation of slim: true option.

  1. What really helped me was cache reset. I don't know for sure but I suppose that serverless-python-requirements plugin looks at changes in requirements.txt and makes a decision to use a cached version from the previous deployment or not. And this is incorrect because it completely ignores any changes to config in serverless.yml.

Exactly this command helped me (and I have to do it every time I change config of the plugin): serverless requirements cleanCache. Docker got running and also useless files got removed by slim: true option and made my pythonRequirements.zip file 5 MB lighter 👍

Also, it's a pity that this command isn't documented in README.md... I found it wandering in the source code.

@AndrewFarley Maybe because you didn't have cache on your machine for that project you couldn't reproduce the issue here

Thanks @GarrisonD, serverless requirements cleanCache did the trick!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

calclavia picture calclavia  ·  5Comments

doublemarked picture doublemarked  ·  3Comments

ceefour picture ceefour  ·  3Comments

sepulworld picture sepulworld  ·  5Comments

bsamuel-ui picture bsamuel-ui  ·  3Comments