python-arango icon indicating copy to clipboard operation
python-arango copied to clipboard

Add PEP 561 guideline

Open aMahanna opened this issue 2 years ago • 5 comments

Closes #203

How to test

  1. pip install mypy git+https://github.com/ArangoDB-Community/python-arango.git@fix/mypy-py-typed
  2. echo "from arango.database import StandardDatabase" >> temp.py
  3. mypy temp.py

aMahanna avatar Jun 17 '22 23:06 aMahanna

Codecov Report

Merging #208 (114fb44) into main (21c9e5d) will not change coverage. The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #208   +/-   ##
=======================================
  Coverage   99.86%   99.86%           
=======================================
  Files          26       26           
  Lines        3723     3723           
=======================================
  Hits         3718     3718           
  Misses          5        5           

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 21c9e5d...114fb44. Read the comment docs.

codecov-commenter avatar Jun 17 '22 23:06 codecov-commenter

Issue is not solved as of 0ac6f9d

aMahanna avatar Jun 17 '22 23:06 aMahanna

Issue is not solved as of 0ac6f9d

You should be able to put it in MANIFEST.in to make sure it is included.

joowani avatar Jun 18 '22 00:06 joowani

You should be able to put it in MANIFEST.in to make sure it is included.

I currently have global-include *.typed in the MANIFEST.in, it seems to be recognized since installing this branch via pip install shows that there is an arango/py.typed file 🤔

aMahanna avatar Jun 18 '22 00:06 aMahanna

Update: not solved as of https://github.com/ArangoDB-Community/python-arango/pull/208/commits/114fb44f512a6786160a19e81d79b620fba3ab37

aMahanna avatar Jun 18 '22 00:06 aMahanna

Hi, I've built the package in local like in CI and installed from local wheel and it fixes the issue:

(.venv-python-arango-local)  pedrovicente@pedrovicente  ~/cytora/test-mypy-arango  pip install ../python-arango/dist/python_arango-7.3.5.dev5+g114fb44-py3-none-any.whl mypy
Processing /Users/pedrovicente/cytora/python-arango/dist/python_arango-7.3.5.dev5+g114fb44-py3-none-any.whl
Collecting mypy
  Using cached mypy-0.991-cp39-cp39-macosx_11_0_arm64.whl (10.0 MB)
Requirement already satisfied: setuptools>=42 in ./.venv-python-arango-local/lib/python3.9/site-packages (from python-arango==7.3.5.dev5+g114fb44) (65.4.1)
Collecting requests
  Using cached requests-2.28.1-py3-none-any.whl (62 kB)
Collecting requests-toolbelt
  Using cached requests_toolbelt-0.10.1-py2.py3-none-any.whl (54 kB)
Collecting PyJWT
  Using cached PyJWT-2.6.0-py3-none-any.whl (20 kB)
Collecting urllib3>=1.26.0
  Using cached urllib3-1.26.13-py2.py3-none-any.whl (140 kB)
Collecting mypy-extensions>=0.4.3
  Using cached mypy_extensions-0.4.3-py2.py3-none-any.whl (4.5 kB)
Collecting typing-extensions>=3.10
  Using cached typing_extensions-4.4.0-py3-none-any.whl (26 kB)
Collecting tomli>=1.1.0
  Using cached tomli-2.0.1-py3-none-any.whl (12 kB)
Collecting certifi>=2017.4.17
  Using cached certifi-2022.12.7-py3-none-any.whl (155 kB)
Collecting charset-normalizer<3,>=2
  Using cached charset_normalizer-2.1.1-py3-none-any.whl (39 kB)
Collecting idna<4,>=2.5
  Using cached idna-3.4-py3-none-any.whl (61 kB)
Installing collected packages: mypy-extensions, urllib3, typing-extensions, tomli, PyJWT, idna, charset-normalizer, certifi, requests, mypy, requests-toolbelt, python-arango
Successfully installed PyJWT-2.6.0 certifi-2022.12.7 charset-normalizer-2.1.1 idna-3.4 mypy-0.991 mypy-extensions-0.4.3 python-arango-7.3.5.dev5+g114fb44 requests-2.28.1 requests-toolbelt-0.10.1 tomli-2.0.1 typing-extensions-4.4.0 urllib3-1.26.13

[notice] A new release of pip available: 22.2.2 -> 22.3.1
[notice] To update, run: pip install --upgrade pip
(.venv-python-arango-local)  pedrovicente@pedrovicente  ~/cytora/test-mypy-arango  mypy temp.py
Success: no issues found in 1 source file

You can see that I can reproduce the error from issue installing python-arango from pypi:

(.venv-python-arango)  pedrovicente@pedrovicente  ~/cytora/test-mypy-arango  pip install python-arango mypy
Collecting python-arango
  Using cached python_arango-7.5.4-py3-none-any.whl (99 kB)
Collecting mypy
  Using cached mypy-0.991-cp39-cp39-macosx_11_0_arm64.whl (10.0 MB)
Requirement already satisfied: setuptools>=42 in ./.venv-python-arango/lib/python3.9/site-packages (from python-arango) (65.4.1)
Collecting requests
  Using cached requests-2.28.1-py3-none-any.whl (62 kB)
Collecting PyJWT
  Using cached PyJWT-2.6.0-py3-none-any.whl (20 kB)
Collecting urllib3>=1.26.0
  Using cached urllib3-1.26.13-py2.py3-none-any.whl (140 kB)
Collecting requests-toolbelt
  Using cached requests_toolbelt-0.10.1-py2.py3-none-any.whl (54 kB)
Collecting typing-extensions>=3.10
  Using cached typing_extensions-4.4.0-py3-none-any.whl (26 kB)
Collecting mypy-extensions>=0.4.3
  Using cached mypy_extensions-0.4.3-py2.py3-none-any.whl (4.5 kB)
Collecting tomli>=1.1.0
  Using cached tomli-2.0.1-py3-none-any.whl (12 kB)
Collecting certifi>=2017.4.17
  Using cached certifi-2022.12.7-py3-none-any.whl (155 kB)
Collecting charset-normalizer<3,>=2
  Using cached charset_normalizer-2.1.1-py3-none-any.whl (39 kB)
Collecting idna<4,>=2.5
  Using cached idna-3.4-py3-none-any.whl (61 kB)
Installing collected packages: mypy-extensions, urllib3, typing-extensions, tomli, PyJWT, idna, charset-normalizer, certifi, requests, mypy, requests-toolbelt, python-arango
Successfully installed PyJWT-2.6.0 certifi-2022.12.7 charset-normalizer-2.1.1 idna-3.4 mypy-0.991 mypy-extensions-0.4.3 python-arango-7.5.4 requests-2.28.1 requests-toolbelt-0.10.1 tomli-2.0.1 typing-extensions-4.4.0 urllib3-1.26.13

[notice] A new release of pip available: 22.2.2 -> 22.3.1
[notice] To update, run: pip install --upgrade pip
(.venv-python-arango)  pedrovicente@pedrovicente  ~/cytora/test-mypy-arango  mypy temp.py
temp.py:1: error: Skipping analyzing "arango.database": module is installed, but missing library stubs or py.typed marker  [import]
temp.py:1: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports
Found 1 error in 1 file (checked 1 source file)

You can see how I've built the wheel from this branch and py.typed is included in package

(.venv)  ✘ pedrovicente@pedrovicente  ~/cytora/python-arango   fix/mypy-py-typed  python setup.py sdist bdist_wheel
running sdist
running egg_info
writing python_arango.egg-info/PKG-INFO
writing dependency_links to python_arango.egg-info/dependency_links.txt
writing requirements to python_arango.egg-info/requires.txt
writing top-level names to python_arango.egg-info/top_level.txt
reading manifest template 'MANIFEST.in'
adding license file 'LICENSE'
writing manifest file 'python_arango.egg-info/SOURCES.txt'
running check
creating python-arango-7.3.5.dev5+g114fb44
creating python-arango-7.3.5.dev5+g114fb44/.github
creating python-arango-7.3.5.dev5+g114fb44/.github/workflows
creating python-arango-7.3.5.dev5+g114fb44/arango
creating python-arango-7.3.5.dev5+g114fb44/docs
creating python-arango-7.3.5.dev5+g114fb44/docs/static
creating python-arango-7.3.5.dev5+g114fb44/python_arango.egg-info
copying files to python-arango-7.3.5.dev5+g114fb44...
copying .gitignore -> python-arango-7.3.5.dev5+g114fb44
copying .pre-commit-config.yaml -> python-arango-7.3.5.dev5+g114fb44
copying CONTRIBUTING.md -> python-arango-7.3.5.dev5+g114fb44
copying LICENSE -> python-arango-7.3.5.dev5+g114fb44
copying MANIFEST.in -> python-arango-7.3.5.dev5+g114fb44
copying README.md -> python-arango-7.3.5.dev5+g114fb44
copying pyproject.toml -> python-arango-7.3.5.dev5+g114fb44
copying setup.cfg -> python-arango-7.3.5.dev5+g114fb44
copying setup.py -> python-arango-7.3.5.dev5+g114fb44
copying .github/workflows/build.yaml -> python-arango-7.3.5.dev5+g114fb44/.github/workflows
copying .github/workflows/codeql.yaml -> python-arango-7.3.5.dev5+g114fb44/.github/workflows
copying .github/workflows/pypi.yaml -> python-arango-7.3.5.dev5+g114fb44/.github/workflows
copying arango/__init__.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/api.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/aql.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/backup.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/client.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/cluster.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/collection.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/connection.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/cursor.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/database.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/errno.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/exceptions.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/executor.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/formatter.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/foxx.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/graph.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/http.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/job.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/pregel.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/py.typed -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/replication.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/request.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/resolver.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/response.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/result.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/typings.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/utils.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/version.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/wal.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying docs/Makefile -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/admin.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/analyzer.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/aql.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/async.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/auth.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/backup.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/batch.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/certificates.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/cluster.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/collection.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/conf.py -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/contributing.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/cursor.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/database.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/document.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/errno.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/errors.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/foxx.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/graph.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/http.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/index.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/indexes.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/logging.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/make.bat -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/overview.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/pregel.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/replication.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/schema.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/serializer.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/simple.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/specs.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/task.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/threading.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/transaction.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/user.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/view.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/wal.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/static/logo.png -> python-arango-7.3.5.dev5+g114fb44/docs/static
copying python_arango.egg-info/PKG-INFO -> python-arango-7.3.5.dev5+g114fb44/python_arango.egg-info
copying python_arango.egg-info/SOURCES.txt -> python-arango-7.3.5.dev5+g114fb44/python_arango.egg-info
copying python_arango.egg-info/dependency_links.txt -> python-arango-7.3.5.dev5+g114fb44/python_arango.egg-info
copying python_arango.egg-info/requires.txt -> python-arango-7.3.5.dev5+g114fb44/python_arango.egg-info
copying python_arango.egg-info/top_level.txt -> python-arango-7.3.5.dev5+g114fb44/python_arango.egg-info
Writing python-arango-7.3.5.dev5+g114fb44/setup.cfg
creating dist
Creating tar archive
removing 'python-arango-7.3.5.dev5+g114fb44' (and everything under it)
running bdist_wheel
running build
running build_py
copying arango/formatter.py -> build/lib/arango
copying arango/version.py -> build/lib/arango
copying arango/pregel.py -> build/lib/arango
copying arango/database.py -> build/lib/arango
copying arango/client.py -> build/lib/arango
copying arango/request.py -> build/lib/arango
copying arango/typings.py -> build/lib/arango
copying arango/utils.py -> build/lib/arango
copying arango/aql.py -> build/lib/arango
copying arango/collection.py -> build/lib/arango
copying arango/exceptions.py -> build/lib/arango
copying arango/executor.py -> build/lib/arango
copying arango/cursor.py -> build/lib/arango
copying arango/py.typed -> build/lib/arango
/Users/pedrovicente/cytora/python-arango/.venv/lib/python3.9/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
installing to build/bdist.macosx-13-arm64/wheel
running install
running install_lib
creating build/bdist.macosx-13-arm64/wheel
creating build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/errno.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/backup.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/formatter.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/version.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/job.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/pregel.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/database.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/client.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/graph.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/request.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/typings.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/__init__.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/response.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/wal.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/api.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/result.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/connection.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/utils.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/cluster.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/aql.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/replication.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/http.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/resolver.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/collection.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/py.typed -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/exceptions.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/executor.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/cursor.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/foxx.py -> build/bdist.macosx-13-arm64/wheel/arango
running install_egg_info
Copying python_arango.egg-info to build/bdist.macosx-13-arm64/wheel/python_arango-7.3.5.dev5+g114fb44-py3.9.egg-info
running install_scripts
creating build/bdist.macosx-13-arm64/wheel/python_arango-7.3.5.dev5+g114fb44.dist-info/WHEEL
creating 'dist/python_arango-7.3.5.dev5+g114fb44-py3-none-any.whl' and adding 'build/bdist.macosx-13-arm64/wheel' to it
adding 'arango/__init__.py'
adding 'arango/api.py'
adding 'arango/aql.py'
adding 'arango/backup.py'
adding 'arango/client.py'
adding 'arango/cluster.py'
adding 'arango/collection.py'
adding 'arango/connection.py'
adding 'arango/cursor.py'
adding 'arango/database.py'
adding 'arango/errno.py'
adding 'arango/exceptions.py'
adding 'arango/executor.py'
adding 'arango/formatter.py'
adding 'arango/foxx.py'
adding 'arango/graph.py'
adding 'arango/http.py'
adding 'arango/job.py'
adding 'arango/pregel.py'
adding 'arango/py.typed'
adding 'arango/replication.py'
adding 'arango/request.py'
adding 'arango/resolver.py'
adding 'arango/response.py'
adding 'arango/result.py'
adding 'arango/typings.py'
adding 'arango/utils.py'
adding 'arango/version.py'
adding 'arango/wal.py'
adding 'python_arango-7.3.5.dev5+g114fb44.dist-info/LICENSE'
adding 'python_arango-7.3.5.dev5+g114fb44.dist-info/METADATA'
adding 'python_arango-7.3.5.dev5+g114fb44.dist-info/WHEEL'
adding 'python_arango-7.3.5.dev5+g114fb44.dist-info/top_level.txt'
adding 'python_arango-7.3.5.dev5+g114fb44.dist-info/RECORD'
removing build/bdist.macosx-13-arm64/wheel

Is there anything I'm missing @aMahanna? Could we merge this branch @joowani ?

pvicente avatar Jan 03 '23 17:01 pvicente

LGTM

joowani avatar Jan 03 '23 18:01 joowani

@joowani @aMahanna thank you!!! could you merge it?

pvicente avatar Jan 03 '23 20:01 pvicente

@aMahanna @joowani any plans on merging it and release a new version?

pvicente avatar Jan 09 '23 11:01 pvicente

Sorry for the delay @pvicente. Merged and will make a release soon.

joowani avatar Jan 09 '23 16:01 joowani