Compare commits

..

10 commits

Author SHA1 Message Date
Waylon Walker
01101bcb02 Bump version: 0.3.0 → 0.4.0
Some checks failed
Deploy pypi-list / build (push) Failing after 3m36s
2021-06-25 08:32:15 -05:00
Waylon Walker
9e2abc427b Fix refactored main -> run_project 2021-06-25 08:31:25 -05:00
Waylon Walker
355034216c Bump version: 0.2.0 → 0.3.0 2021-06-25 08:26:39 -05:00
Waylon Walker
89d29fbc5d FIX correct version in pyproject.toml 2021-06-25 08:25:43 -05:00
Waylon Walker
e58af1a092 Add pre-commit intstructions 2021-06-25 08:22:59 -05:00
Waylon Walker
39f672cb21 add type hinting 2021-06-25 08:17:29 -05:00
Waylon Walker
6ecefb482f add docstrings to project 2021-06-25 08:11:13 -05:00
Waylon Walker
f7eb84c03b add instructions for using setup.py 2021-06-25 07:51:35 -05:00
Waylon Walker
65241d7751 Add interrogate to pre-commit-config 2021-06-25 07:47:54 -05:00
Waylon Walker
dc7511ca9a run pre-commit 2021-06-25 07:37:07 -05:00
9 changed files with 83 additions and 15 deletions

View file

@ -16,7 +16,7 @@ jobs:
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
- name: Setup Python
uses: actions/setup-python@v2.2.2
with:

View file

@ -39,3 +39,11 @@ repos:
hooks:
- id: mypy
exclude: tests/
- repo: https://github.com/econchick/interrogate
rev: '1.2.0'
hooks:
- id: interrogate
description: check for docstring coverage
entry: interrogate -f 100 -iIvv
types: [python]
exclude: docs

View file

@ -31,3 +31,11 @@ This pipeline run daily at `0:0` to generate a `packages.json`,
``` bash
pip install -e ".[dev]"
```
This project includes a `pre-commit-config`, this ensures that each commit made
to the project passes all checks that are also ran in CI. To setup pre-commit
in your development environment run the follow command.
``` bash
pre-commit install
```

View file

@ -4,7 +4,7 @@ pypi-list
Listing python packages from pypi, and finding available single word packages.
## Run the Pipeline
## Run the Pipeline at the command line
``` bash
# Run with existing package data
@ -13,8 +13,19 @@ python pypi-list.py
# Full run
python pypi-list.py --full
```
## Run the Pipeline with a python repl
``` python
from pypi_list import run_project
run_project() # run local datasets only
run_project(full=True) # run full pipeline including network requests
```
"""
import logging
from typing import List, Optional
import requests
from kedro.extras.datasets.json import JSONDataSet
@ -25,10 +36,11 @@ from kedro.runner.sequential_runner import SequentialRunner
logger = logging.getLogger(__name__)
__version__ = "0.2.0"
__version__ = "0.4.0"
def get_body(packages):
def get_body(packages: str) -> str:
"""Get the body tag from the full page html."""
tag = "<body>\n"
index = packages.find(tag) + len(tag)
@ -37,7 +49,7 @@ def get_body(packages):
return packages
def remove_html_tags(text):
def remove_html_tags(text: str) -> List[str]:
"""Remove html tags from a string"""
import re
@ -135,11 +147,36 @@ catalog = DataCatalog(
runner = SequentialRunner()
def main():
def run_project(full: Optional[bool] = None):
"""
Run the project.
Parameters
--------
full : bool
runs the full pipeline if True
skips network calls if False
checks sys.arv for --full if None
Returns
--------
None
Examples
--------
>>> from pypi_list import run_project
>>> run_project() # run local datasets only
>>> run_project(full=True) # run full pipeline including network requests
"""
import sys
if "--full" in sys.argv:
if "--full" in sys.argv and full is None:
full = True
if full:
runner.run(pipeline, catalog)
else:
runner.run(
Pipeline([node for node in pipeline.nodes if "raw" not in node.name]),
@ -148,4 +185,4 @@ def main():
if __name__ == "__main__":
main()
run_project()

View file

@ -1,7 +1,7 @@
[tool.kedro]
package_name = "pypi_list"
project_name = "Pypi List"
project_version = "0.0.2"
project_version = "0.4.0"
[tool.isort]
multi_line_output = 3

View file

@ -1,3 +1,2 @@
kedro
requests

View file

@ -1,5 +1,5 @@
[bumpversion]
current_version = 0.2.0
current_version = 0.4.0
commit = True
tag = True

View file

@ -1,12 +1,28 @@
from setuptools import setup, find_packages
"""
pypi-list uses setup tools for packaging.
To Build pypi-list as a Python package
$ python setup.py sdist bdist_wheel
Regular install
$ pip install -e .
To setup local Development
$ pip install -e ".[dev]"
"""
from pathlib import Path
from setuptools import find_packages, setup
requires = Path("requirements.txt").read_text().split()
dev_requires = Path("requirements_dev.txt").read_text().split()
setup(
name="pypi_list",
version="0.2.0",
version="0.4.0",
packages=find_packages(),
install_requires=requires,
extras_require={
@ -14,5 +30,5 @@ setup(
"dev": dev_requires,
"prod": requires,
},
entry_points={"console_scripts": ["pypi-list = pypi_list:main"]},
entry_points={"console_scripts": ["pypi-list = pypi_list:run_project"]},
)

View file

@ -30,6 +30,6 @@
<body>
<h1>pypi-list</h1>
Checkout the available pypi packages that are single words in <a href='./available.json'>available.json</a>
</body>
</html>