cyhole 0.0.1a0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. cyhole-0.0.1a0/.github/workflows/publish-doc.yml +38 -0
  2. cyhole-0.0.1a0/.github/workflows/publish-version.yml +45 -0
  3. cyhole-0.0.1a0/.gitignore +6 -0
  4. cyhole-0.0.1a0/LICENSE +21 -0
  5. cyhole-0.0.1a0/PKG-INFO +54 -0
  6. cyhole-0.0.1a0/README.md +32 -0
  7. cyhole-0.0.1a0/docs/config/css/mkdocstrings.css +6 -0
  8. cyhole-0.0.1a0/docs/config/images/logo.png +0 -0
  9. cyhole-0.0.1a0/docs/config/overrides/partials/toc-item.html +18 -0
  10. cyhole-0.0.1a0/docs/development/core/api.md +3 -0
  11. cyhole-0.0.1a0/docs/development/core/exception.md +5 -0
  12. cyhole-0.0.1a0/docs/development/core/index.md +6 -0
  13. cyhole-0.0.1a0/docs/development/core/param.md +3 -0
  14. cyhole-0.0.1a0/docs/development/index.md +29 -0
  15. cyhole-0.0.1a0/docs/index.md +23 -0
  16. cyhole-0.0.1a0/docs/interactions/birdeye/api.md +7 -0
  17. cyhole-0.0.1a0/docs/interactions/birdeye/exception.md +5 -0
  18. cyhole-0.0.1a0/docs/interactions/birdeye/index.md +64 -0
  19. cyhole-0.0.1a0/docs/interactions/birdeye/param.md +5 -0
  20. cyhole-0.0.1a0/docs/interactions/birdeye/schema.md +20 -0
  21. cyhole-0.0.1a0/docs/requirements.txt +3 -0
  22. cyhole-0.0.1a0/mkdocs.yml +108 -0
  23. cyhole-0.0.1a0/pyproject.toml +35 -0
  24. cyhole-0.0.1a0/src/cyhole/__init__.py +0 -0
  25. cyhole-0.0.1a0/src/cyhole/birdeye/Birdeye.py +750 -0
  26. cyhole-0.0.1a0/src/cyhole/birdeye/__init__.py +5 -0
  27. cyhole-0.0.1a0/src/cyhole/birdeye/exception.py +11 -0
  28. cyhole-0.0.1a0/src/cyhole/birdeye/param.py +101 -0
  29. cyhole-0.0.1a0/src/cyhole/birdeye/schema.py +601 -0
  30. cyhole-0.0.1a0/src/cyhole/core/__init__.py +5 -0
  31. cyhole-0.0.1a0/src/cyhole/core/api.py +59 -0
  32. cyhole-0.0.1a0/src/cyhole/core/exception.py +29 -0
  33. cyhole-0.0.1a0/src/cyhole/core/param.py +34 -0
  34. cyhole-0.0.1a0/src/requirements.txt +4 -0
  35. cyhole-0.0.1a0/tests/config.py +134 -0
  36. cyhole-0.0.1a0/tests/requirements.txt +2 -0
  37. cyhole-0.0.1a0/tests/test.default.ini +14 -0
  38. cyhole-0.0.1a0/tests/test_birdeye.py +475 -0
@@ -0,0 +1,38 @@
1
+ name: publish-doc
2
+
3
+ on:
4
+ release:
5
+ types: [created]
6
+
7
+ permissions:
8
+ contents: write
9
+
10
+ jobs:
11
+ deploy:
12
+ name: deploy a new version of cyhole library documentation
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - uses: actions/checkout@v4
16
+
17
+ # set up environment
18
+ - name: setup python
19
+ uses: actions/setup-python@v3
20
+ with:
21
+ python-version: 3.12
22
+ - name: install pip
23
+ run: python -m pip install --upgrade pip
24
+ - name: install dependencies
25
+ run: pip install -r docs/requirements.txt
26
+
27
+ # setup git bot credentials
28
+ - run: git config user.name github-actions[bot]
29
+ - run: git config user.email github-actions[bot]@users.noreply.github.com
30
+
31
+ - name: deploy documentstion
32
+ run: mkdocs gh-deploy --force
33
+
34
+ # check workflow output
35
+ - name: dump GitHub context
36
+ env:
37
+ GITHUB_CONTEXT: ${{ toJson(github) }}
38
+ run: echo "$GITHUB_CONTEXT"
@@ -0,0 +1,45 @@
1
+ name: publish-version
2
+
3
+ on:
4
+ release:
5
+ types: [created]
6
+
7
+ jobs:
8
+ deploy:
9
+ name: deploy a new version of cyhole library
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - uses: actions/checkout@v4
13
+
14
+ # set up environment
15
+ - name: set up python
16
+ uses: actions/setup-python@v3
17
+ with:
18
+ python-version: 3.12
19
+ - name: install pip
20
+ run: python -m pip install --upgrade pip
21
+ - name: install dependencies
22
+ run: pip install -r src/requirements.txt
23
+ - name: install build
24
+ run: python -m pip install --upgrade build
25
+
26
+ # update library version equals release
27
+ - name: update version in pyproject.toml
28
+ run: sed -i "s/{{PROJET_VERSION}}/${{ github.event.release.tag_name }}/g" pyproject.toml
29
+
30
+ # build package
31
+ - name: build a binary wheel and a source tarball
32
+ run: python -m build --sdist --wheel --outdir dist/
33
+
34
+ # publish on pypi
35
+ - name: publish package
36
+ uses: pypa/gh-action-pypi-publish@v1.8.14
37
+ with:
38
+ user: __token__
39
+ password: ${{ secrets.PYPI_API_TOKEN }}
40
+
41
+ # check workflow output
42
+ - name: dump GitHub context
43
+ env:
44
+ GITHUB_CONTEXT: ${{ toJson(github) }}
45
+ run: echo "$GITHUB_CONTEXT"
@@ -0,0 +1,6 @@
1
+ cyhole.code-workspace
2
+ /gitignore
3
+ /**/__pycache__
4
+ /tests/resources
5
+ /tests/test.ini
6
+ /.vscode
cyhole-0.0.1a0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Andrea Zanini
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,54 @@
1
+ Metadata-Version: 2.3
2
+ Name: cyhole
3
+ Version: 0.0.1a0
4
+ Summary: cyhole, designed to help python's developers to interact to the most popular external API services in crypto and create automation processes.
5
+ Project-URL: Homepage, https://github.com/zazza123/cyhole
6
+ Project-URL: Repository, https://github.com/zazza123/cyhole
7
+ Author: Andrea Zanini
8
+ License-File: LICENSE
9
+ Classifier: Development Status :: 1 - Planning
10
+ Classifier: Environment :: Web Environment
11
+ Classifier: Framework :: Pydantic
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: Intended Audience :: Financial and Insurance Industry
14
+ Classifier: Intended Audience :: Information Technology
15
+ Classifier: License :: OSI Approved :: MIT License
16
+ Classifier: Operating System :: OS Independent
17
+ Classifier: Programming Language :: Python
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Requires-Python: >=3.12
21
+ Description-Content-Type: text/markdown
22
+
23
+ <p align="center">
24
+ <img src="https://raw.githubusercontent.com/zazza123/cyhole/main/docs/config/images/logo.png" alt="cyhole" class="img-logo">
25
+ </p>
26
+
27
+ ---
28
+
29
+ **cyhole** is designed to help python's developers to interact to the most popular external API services in crypto world and create automation processes.
30
+
31
+ Each external API integrated into the library is referred to as an *Interaction*, providing developers with a comprehensive toolkit for retrieving real-time market data, historical trends, account information, and more.
32
+
33
+ <u>Key Features</u>
34
+
35
+ - *Centralized Access*: access multiple cryptocurrency APIs through a single interface.
36
+ - *Comprehensive Coverage*: explore a wide range of cryptocurrency data, including market prices, trading volumes, and blockchain statistics.
37
+ - *Simplified Development*: accelerate the development process by leveraging pre-built API integrations.
38
+ - *Flexible Integration*: seamlessly incorporate cyhole into Python projects, whether building automated trading algorithms or monitoring cryptocurrency portfolios.
39
+
40
+ The installation is performed via `pip` by running:
41
+
42
+ ```sh
43
+ pip install cyhole
44
+ ```
45
+
46
+ ## Interactions
47
+
48
+ In **cyhole**, Interactions serve as the fundamental components, akin to the building blocks of a scientific model. Each interaction represents a distinct cryptocurrency API, providing developers with access to essential data and metrics.
49
+
50
+ The current supported external/interactions APIs are:
51
+
52
+ |Site |Path |Connector|
53
+ |---- |---- |---------|
54
+ |[birdeye.so](https://birdeye.so) |`cyhole.birdeye` |`Birdeye`|
@@ -0,0 +1,32 @@
1
+ <p align="center">
2
+ <img src="https://raw.githubusercontent.com/zazza123/cyhole/main/docs/config/images/logo.png" alt="cyhole" class="img-logo">
3
+ </p>
4
+
5
+ ---
6
+
7
+ **cyhole** is designed to help python's developers to interact to the most popular external API services in crypto world and create automation processes.
8
+
9
+ Each external API integrated into the library is referred to as an *Interaction*, providing developers with a comprehensive toolkit for retrieving real-time market data, historical trends, account information, and more.
10
+
11
+ <u>Key Features</u>
12
+
13
+ - *Centralized Access*: access multiple cryptocurrency APIs through a single interface.
14
+ - *Comprehensive Coverage*: explore a wide range of cryptocurrency data, including market prices, trading volumes, and blockchain statistics.
15
+ - *Simplified Development*: accelerate the development process by leveraging pre-built API integrations.
16
+ - *Flexible Integration*: seamlessly incorporate cyhole into Python projects, whether building automated trading algorithms or monitoring cryptocurrency portfolios.
17
+
18
+ The installation is performed via `pip` by running:
19
+
20
+ ```sh
21
+ pip install cyhole
22
+ ```
23
+
24
+ ## Interactions
25
+
26
+ In **cyhole**, Interactions serve as the fundamental components, akin to the building blocks of a scientific model. Each interaction represents a distinct cryptocurrency API, providing developers with access to essential data and metrics.
27
+
28
+ The current supported external/interactions APIs are:
29
+
30
+ |Site |Path |Connector|
31
+ |---- |---- |---------|
32
+ |[birdeye.so](https://birdeye.so) |`cyhole.birdeye` |`Birdeye`|
@@ -0,0 +1,6 @@
1
+ /* Indentation. */
2
+ div.doc-contents:not(.first) {
3
+ padding-left: 10px;
4
+ border-left: 3px solid var(--md-code-bg-color);
5
+ margin-bottom: 25px;
6
+ }
@@ -0,0 +1,18 @@
1
+ <!-- Solution suggested in https://github.com/squidfunk/mkdocs-material/issues/4827 -->
2
+ <li class="md-nav__item">
3
+ <a href="{{ toc_item.url }}" class="md-nav__link">
4
+ <span class="md-ellipsis">
5
+ {{ toc_item.title }}
6
+ </span>
7
+ </a>
8
+
9
+ <!-- Table of contents list -->
10
+ {% if toc_item.children %}
11
+ <nav class="md-nav" aria-label="{{ toc_item.title | striptags }}">
12
+ <ul class="md-nav__list">
13
+ {% for toc_item in toc_item.children %}
14
+ {% if not page.meta.toc_depth or toc_item.level <= page.meta.toc_depth %} {%
15
+ include "partials/toc-item.html" %} {% endif %} {% endfor %} </ul>
16
+ </nav>
17
+ {% endif %}
18
+ </li>
@@ -0,0 +1,3 @@
1
+ # Connector
2
+
3
+ ::: cyhole.core.api
@@ -0,0 +1,5 @@
1
+ # Exceptions
2
+
3
+ ::: cyhole.core.exception
4
+ options:
5
+ show_if_no_docstring: true
@@ -0,0 +1,6 @@
1
+ # :material-atom: - Core
2
+
3
+ This section focuses on the description of the library's most internal tools that could be used to develop new API `Interactions`.
4
+
5
+ !!! warning
6
+ :material-hammer-wrench: - Section under construction.
@@ -0,0 +1,3 @@
1
+ # API Parameters
2
+
3
+ ::: cyhole.core.param
@@ -0,0 +1,29 @@
1
+ # :octicons-code-24: - Development
2
+
3
+ This section is intended to all the developers who want to contribute to the project by:
4
+
5
+ - fixing one or more bugs
6
+ - improving the library
7
+ - creating a new `Interaction`
8
+
9
+ Depending on the scope, different actions should be taken into consideration.
10
+
11
+ ## Bug & Improvements
12
+
13
+ !!! warning
14
+ :material-hammer-wrench: - Section under construction.
15
+
16
+ ## New Interactions
17
+
18
+ !!! warning
19
+ :material-hammer-wrench: - Section under construction.
20
+
21
+ ## Pull Requests
22
+
23
+ !!! warning
24
+ :material-hammer-wrench: - Section under construction.
25
+
26
+ ## Testing
27
+
28
+ !!! warning
29
+ :material-hammer-wrench: - Section under construction.
@@ -0,0 +1,23 @@
1
+ ---
2
+ hide:
3
+ - navigation
4
+ ---
5
+
6
+ <style>
7
+ .md-content .md-typeset h1 {
8
+ display: none;
9
+ }
10
+
11
+ .img-logo {
12
+ display: none;
13
+ }
14
+ </style>
15
+
16
+ <div style="display: flex; align-items: center; justify-content: center;">
17
+ <svg width="6em" height="6em" viewBox="0 0 24 24">
18
+ <path fill = "currentColor" d = "m12 6.7l1.45 3.85L17.3 12l-3.85 1.45L12 17.3l-1.45-3.85L6.7 12l3.85-1.45zM12 1L9 9l-8 3l8 3l3 8l3-8l8-3l-8-3z" />
19
+ </svg>
20
+ <span style="margin-left: 10px; font-size: 4em;">cyhole</span>
21
+ </div>
22
+
23
+ --8<-- "README.md"
@@ -0,0 +1,7 @@
1
+ # Connector
2
+
3
+ Connector page for the birdeye.so API.
4
+ Each endpoint is mapped and callable via a dedicated method.
5
+ Be sure to call an endpoint in line with the permissions of your API.
6
+
7
+ ::: cyhole.birdeye.Birdeye
@@ -0,0 +1,5 @@
1
+ # Exceptions
2
+
3
+ ::: cyhole.birdeye.exception
4
+ options:
5
+ show_if_no_docstring: true
@@ -0,0 +1,64 @@
1
+ # :material-bird: - Birdeye
2
+
3
+ Birdeye ([https://birdeye.so](https://birdeye.so)) is a popular treading crypto platform connected to different blockchains that provides tokens data and pairs' prices in real time. The access to both their public and private APIs is managed by a valid API key requestable on their site.
4
+
5
+ The API connector is [`Birdeye`](../birdeye/api.md) class imported from `cyhole.birdeye` path.
6
+
7
+ ## Quick Example
8
+
9
+ Extract the latest tokens from Ethereum chain sorted in descending order by USD volume in few lines of code.
10
+
11
+ ```py
12
+ from cyhole.birdeye import Birdeye
13
+ from cyhole.birdeye.param import BirdeyeChain
14
+
15
+ api = Birdeye()
16
+ token_list = api.get_token_list(chain = BirdeyeChain.ETHEREUM.value)
17
+
18
+ for token in token_list:
19
+ print(token)
20
+ ```
21
+
22
+ !!! note
23
+ To run this example is assumed that the user has a valid API key stored in `BIRDEYE_API_KEY` environment variable.
24
+ If the key is not provided during the object creations, then the library will raise an exception.
25
+
26
+ ## Content
27
+
28
+ The documentation follows the library's structure by providing all the technical details required to use it.
29
+
30
+ <div class="grid cards" markdown>
31
+
32
+ - :material-connection:{ .lg .middle } __Connector__
33
+
34
+ ---
35
+
36
+ `cyhole.birdeye` - Explore the [`Birdeye`](../birdeye/api.md) API connector and all its methods.
37
+
38
+ [:octicons-arrow-right-24: Reference](../birdeye/api.md)
39
+
40
+ - :material-list-status:{ .lg .middle } __API Parameters__
41
+
42
+ ---
43
+
44
+ `cyhole.birdeye.param` - Ensure to use the correct parameters during the API calls.
45
+
46
+ [:octicons-arrow-right-24: Reference](../birdeye/param.md)
47
+
48
+ - :material-graph:{ .lg .middle } __Response Schema__
49
+
50
+ ---
51
+
52
+ `cyhole.birdeye.schema` - Extract only what is necessary by exploiting reponse mapping thanks to `pydantic` schemes.
53
+
54
+ [:octicons-arrow-right-24: Reference](../birdeye/schema.md)
55
+
56
+ - :octicons-stop-24:{ .lg .middle } __Exceptions__
57
+
58
+ ---
59
+
60
+ `cyhole.birdeye.exception` - Make sure you intercept all exceptions correctly.
61
+
62
+ [:octicons-arrow-right-24: Reference](../birdeye/exception.md)
63
+
64
+ </div>
@@ -0,0 +1,5 @@
1
+ # API Parameters
2
+
3
+ Some endpoints require input parameters belonging to specific domains. On this page, all domains can be found in order to be in line with the standards required by the API.
4
+
5
+ ::: cyhole.birdeye.param
@@ -0,0 +1,20 @@
1
+ ---
2
+ toc_depth: 3
3
+ ---
4
+ # Response Schema
5
+
6
+ Each response has been mapped into a `pydantic` schema in a way that makes it easy to read and write codes that use them.
7
+
8
+ The classes identifying the response schema of an endpoint are the only ones ending with `Response` word, all other sub-schemes are used to identify the structures obtained from the responses.
9
+
10
+ !!! tip "Schema Enhancement"
11
+
12
+ If some schema are __incorrect__ or __needs to be enhanced__ (optional/mandatory fields changes, incorrect datatype or schema update) feel free to open a pull request or issue by attaching:
13
+
14
+ - method
15
+ - endpoint call executed
16
+ - response obtained
17
+
18
+ ::: cyhole.birdeye.schema
19
+ options:
20
+ show_if_no_docstring: true
@@ -0,0 +1,3 @@
1
+ mkdocs-material>=9.5.21
2
+ mkdocstrings-python>=1.10.0
3
+ black>=24.4.2
@@ -0,0 +1,108 @@
1
+ site_name: cyhole
2
+
3
+ repo_url: https://github.com/zazza123/cyhole
4
+ repo_name: zazza123/cyhole
5
+
6
+ theme:
7
+ name: material
8
+ custom_dir: docs/config/overrides
9
+ language: en
10
+ icon:
11
+ logo: material/star-four-points-outline
12
+ features:
13
+ - navigation.instant
14
+ - navigation.instant.progress
15
+ - navigation.tabs
16
+ - navigation.top
17
+ - navigation.sections
18
+ - navigation.expand
19
+ - navigation.indexes
20
+ - toc.follow
21
+ - search.suggest
22
+ - content.code.copy
23
+ palette:
24
+ # Light Mode Palette
25
+ - media: "(prefers-color-scheme: light)"
26
+ primary: black
27
+ scheme: default
28
+ toggle:
29
+ icon: octicons/moon-24
30
+ name: Switch to Dark Mode
31
+ # Dark Mode Palette
32
+ - media: "(prefers-color-scheme: dark)"
33
+ primary: white
34
+ scheme: slate
35
+ toggle:
36
+ icon: octicons/sun-24
37
+ name: Switch to Light Mode
38
+
39
+ plugins:
40
+ - search
41
+ - offline
42
+ - mkdocstrings:
43
+ handlers:
44
+ python:
45
+ paths: [src]
46
+ options:
47
+ show_symbol_type_heading: true
48
+ show_symbol_type_toc: true
49
+ show_inheritance_diagram: true
50
+ show_root_heading: true
51
+ merge_init_into_class: true
52
+ annotations_path: source
53
+ separate_signature: true
54
+ show_signature_annotations: true
55
+ members_order: source
56
+ #signature_crossrefs: true
57
+
58
+ markdown_extensions:
59
+
60
+ # Python Markdown
61
+ - abbr
62
+ - admonition
63
+ - attr_list
64
+ - md_in_html
65
+ - def_list
66
+ - footnotes
67
+ - toc:
68
+ permalink: true
69
+ - pymdownx.emoji:
70
+ emoji_index: !!python/name:material.extensions.emoji.twemoji
71
+ emoji_generator: !!python/name:material.extensions.emoji.to_svg
72
+
73
+ # Python Markdown Extensions
74
+ - pymdownx.snippets
75
+ - pymdownx.betterem:
76
+ smart_enable: all
77
+ - pymdownx.caret
78
+ - pymdownx.details
79
+ - pymdownx.highlight
80
+ - pymdownx.inlinehilite
81
+ - pymdownx.mark
82
+ - pymdownx.superfences
83
+ - pymdownx.tabbed:
84
+ alternate_style: true
85
+ - pymdownx.tasklist:
86
+ custom_checkbox: true
87
+ - pymdownx.tilde
88
+
89
+ # Navigation
90
+ nav:
91
+ - Home: index.md
92
+ - Interactions:
93
+ - Birdeye:
94
+ - interactions/birdeye/index.md
95
+ - Connector: interactions/birdeye/api.md
96
+ - API Parameters: interactions/birdeye/param.md
97
+ - Response Schema: interactions/birdeye/schema.md
98
+ - Exceptions: interactions/birdeye/exception.md
99
+ - Development:
100
+ - development/index.md
101
+ - Core:
102
+ - development/core/index.md
103
+ - Connector: development/core/api.md
104
+ - API Parameters: development/core/param.md
105
+ - Exceptions: development/core/exception.md
106
+
107
+ extra_css:
108
+ - config/css/mkdocstrings.css
@@ -0,0 +1,35 @@
1
+ [build-system]
2
+ requires = ["hatchling"]
3
+ build-backend = "hatchling.build"
4
+
5
+ [project]
6
+ name = "cyhole"
7
+ version = "0.0.1-alpha"
8
+ description = "cyhole, designed to help python's developers to interact to the most popular external API services in crypto and create automation processes."
9
+ readme = "README.md"
10
+ requires-python = ">=3.12"
11
+ authors = [
12
+ { name = "Andrea Zanini", email= "" },
13
+ ]
14
+ classifiers = [
15
+ "Development Status :: 1 - Planning",
16
+ "License :: OSI Approved :: MIT License",
17
+ "Operating System :: OS Independent",
18
+ "Environment :: Web Environment",
19
+ "Framework :: Pydantic",
20
+ "Programming Language :: Python",
21
+ "Programming Language :: Python :: 3",
22
+ "Programming Language :: Python :: 3.12",
23
+ "Intended Audience :: Developers",
24
+ "Intended Audience :: Information Technology",
25
+ "Intended Audience :: Financial and Insurance Industry"
26
+ ]
27
+
28
+ [project.urls]
29
+ Homepage = "https://github.com/zazza123/cyhole"
30
+ Repository = "https://github.com/zazza123/cyhole"
31
+
32
+ [tool.pytest.ini_options]
33
+ addopts = [
34
+ "--import-mode=importlib",
35
+ ]
File without changes