Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Config the project with pyproject.toml #40

Merged
merged 1 commit into from
Jul 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
"""
Loading