Skip to content

Commit

Permalink
refactor: config the project with pyproject.toml;
Browse files Browse the repository at this point in the history
  • Loading branch information
WenjieDu committed Jul 23, 2024
1 parent 5c30c10 commit 4400544
Show file tree
Hide file tree
Showing 5 changed files with 97 additions and 24 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/linting.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:

- name: Install Flake8
run: |
pip install flake8
pip install flake8 flake8-pyproject
- name: Run linting
run: |
Expand Down
7 changes: 2 additions & 5 deletions .github/workflows/publish_to_PyPI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,11 @@ jobs:
with:
python-version: '3.10'
check-latest: true
cache-dependency-path: |
requirements.txt

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install build wheel
pip install -r requirements.txt
pip install build
- name: Fetch the test environment details
run: |
Expand All @@ -47,7 +44,7 @@ jobs:
- name: Build package
run: |
python -m build --no-isolation
python -m build
- name: Publish the new package to PyPI
uses: pypa/[email protected]
Expand Down
19 changes: 1 addition & 18 deletions pygrinder/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,24 +5,6 @@
# Created by Wenjie Du <[email protected]>
# License: BSD-3-Clause

# PyGrinder version
#
# PEP0440 compatible formatted version, see:
# https://www.python.org/dev/peps/pep-0440/
# Generic release markers:
# X.Y
# X.Y.Z # For bugfix releases
#
# Admissible pre-release markers:
# X.YaN # Alpha release
# X.YbN # Beta release
# X.YrcN # Release Candidate
# X.Y # Final release
#
# Dev branch marker is: 'X.Y.dev' or 'X.Y.devN' where N is an integer.
# 'X.Y.dev0' is the canonical version of 'X.Y.dev'
__version__ = "0.6.1"

from .missing_at_random import mar_logistic
from .missing_completely_at_random import mcar, mcar_little_test
from .missing_not_at_random import mnar_x, mnar_t
Expand All @@ -36,6 +18,7 @@
fill_and_get_mask_torch,
fill_and_get_mask_numpy,
)
from .version import __version__

__all__ = [
"__version__",
Expand Down
24 changes: 24 additions & 0 deletions pygrinder/version.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
"""
"""

# Created by Wenjie Du <[email protected]>
# License: BSD-3-Clause

# PyGrinder version
#
# PEP0440 compatible formatted version, see:
# https://www.python.org/dev/peps/pep-0440/
# Generic release markers:
# X.Y
# X.Y.Z # For bugfix releases
#
# Admissible pre-release markers:
# X.YaN # Alpha release
# X.YbN # Beta release
# X.YrcN # Release Candidate
# X.Y # Final release
#
# Dev branch marker is: 'X.Y.dev' or 'X.Y.devN' where N is an integer.
# 'X.Y.dev0' is the canonical version of 'X.Y.dev'
__version__ = "0.6.2"
69 changes: 69 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
[build-system]
requires = ["setuptools>=71"]

[project]
name = "pygrinder"
description = "A Python toolkit for introducing missing values into datasets"
authors = [{ name = "Wenjie Du", email = "[email protected]" }]
dynamic = ["version", "readme", "dependencies"]
license = { file = "LICENSE" }
requires-python = ">=3.8"
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"Intended Audience :: Education",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: BSD License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
"Topic :: Software Development :: Libraries :: Application Frameworks",
]
keywords = [
"data corruption",
"incomplete data",
"data mining",
"pypots",
"missingness",
"partially observed",
"irregular sampled",
"partially-observed time series",
"incomplete time series",
"missing data",
"missing values",
"simulation",
"pypots",
]

[project.urls]
Source = "https://github.com/WenjieDu/PyGrinder"
Homepage = "https://pypots.com"
Documentation = "https://docs.pypots.com"
"Bug Tracker" = "https://github.com/WenjieDu/PyGrinder/issues"
Download = "https://github.com/WenjieDu/PyGrinder/archive/main.zip"

[tool.setuptools.packages.find]
exclude = [
"docs*",
"test*",
]

[tool.setuptools.dynamic]
version = { attr = "pygrinder.version.__version__" }
readme = { file = "README.md", content-type = "text/markdown" }
dependencies = { file = "requirements.txt" }

[tool.flake8]
# People may argue that coding style is personal. This may be true if the project is personal and one works like a
# hermit, but to PyPOTS and its community, the answer is NO.
# We use Black and Flake8 to lint code style and keep the style consistent across all commits and pull requests.
# Black only reformats the code, and Flake8 is necessary for checking for some other issues not covered by Black.

# The Black line length is default as 88, while the default of Flake8 is 79. However, considering our monitors are
# much more advanced nowadays, I extend the maximum line length to 120, like other project e.g. transformers. People
# who prefer the default setting can keep using 88 or 79 while coding. Please ensure your code lines not exceeding 120.
max-line-length = 120
# why ignore E203? Refer to https://github.com/PyCQA/pycodestyle/issues/373
extend-ignore = """
E203
"""

0 comments on commit 4400544

Please sign in to comment.