Skip to content

Commit

Permalink
Switch to pyproject.toml for package configuration (#78)
Browse files Browse the repository at this point in the history
We can now remove setup.cfg since setuptools supports pyproject.toml.
  • Loading branch information
leouieda authored Apr 10, 2024
1 parent 6b9f550 commit 594160d
Show file tree
Hide file tree
Showing 6 changed files with 90 additions and 87 deletions.
42 changes: 42 additions & 0 deletions .flake8
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Configure flake8

[flake8]
max-line-length = 88
max-doc-length = 79
ignore =
# Too many leading '#' for block comment
E266,
# Line too long (82 > 79 characters)
E501,
# Do not use variables named 'I', 'O', or 'l'
E741,
# Line break before binary operator (conflicts with black)
W503,
# Ignore spaces before a colon (Black handles it)
E203,
exclude =
.git,
__pycache__,
.ipynb_checkpoints,
doc/_build,
per-file-ignores =
# disable unused-imports errors on __init__.py
__init__.py: F401,
_io.py: A005,

# Configure flake8-rst-docstrings
# -------------------------------
# Add some roles used in our docstrings
rst-roles =
class,
func,
mod,
meth,
ref,
# Ignore "Unknown target name" raised on citations
extend-ignore = RST306

# Configure flake8-functions
# --------------------------
# Allow a max of 10 arguments per function
max-parameters-amount = 10
2 changes: 1 addition & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ jobs:
- name: Collect requirements
run: |
echo "Install Dependente to capture dependencies:"
python -m pip install dependente==0.1.0
python -m pip install dependente==0.3.0
echo ""
echo "Capturing run-time dependencies:"
dependente --source install > requirements-full.txt
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ jobs:
- name: Collect requirements
run: |
echo "Install Dependente to capture dependencies:"
python -m pip install dependente==0.1.0
python -m pip install dependente==0.3.0
echo ""
echo "Capturing run-time dependencies:"
if [[ "${{ matrix.dependencies }}" == "oldest" ]]; then
Expand Down
1 change: 1 addition & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ prune data
exclude .*.yml
exclude .*rc
exclude .gitignore
exclude .flake8
exclude CONTRIBUTING.md
exclude CODE_OF_CONDUCT.md
exclude environment.yml
Expand Down
47 changes: 45 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,45 @@
# Specify that we use setuptools and setuptools_scm (to generate the version
# string). Actual configuration is in setup.cfg.
[project]
name = "xlandsat"
description = "Analyze Landsat remote sensing images using xarray"
dynamic = ["version"]
authors = [
{name="Leonardo Uieda", email="leo@uieda.com"},
]
readme = "README.md"
license = {text = "MIT License"}
keywords = ["xarray", "remote sensing", "satellite", "landsat"]
classifiers = [
"Development Status :: 5 - Production/Stable",
"License :: OSI Approved :: BSD License",
"Operating System :: OS Independent",
"Intended Audience :: Science/Research",
"Intended Audience :: Developers",
"Intended Audience :: Education",
"Topic :: Scientific/Engineering",
"Topic :: Software Development :: Libraries",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
]
requires-python = ">=3.7"
dependencies = [
"numpy>=1.19",
"scipy>=1.5",
"xarray>=0.16",
"scikit-image>=0.18",
"pooch>=1.3.0",
]

[project.urls]
"Documentation" = "https://www.compgeolab.org/xlandsat"
"Changelog" = "https://www.compgeolab.org/xlandsat/latest/changes.html"
"Bug Tracker" = "https://github.com/compgeolab/xlandsat/issues"
"Source Code" = "https://github.com/compgeolab/xlandsat"

[build-system]
requires = ["setuptools>=61", "wheel", "setuptools_scm[toml]>=6.2"]
build-backend = "setuptools.build_meta"
Expand All @@ -9,6 +49,9 @@ version_scheme = "post-release"
local_scheme = "node-and-date"
write_to = "xlandsat/_version_generated.py"

[tool.setuptools.packages]
find = {} # Scanning implicit namespaces is active by default

# Make sure isort and Black are compatible
[tool.isort]
profile = "black"
Expand Down
83 changes: 0 additions & 83 deletions setup.cfg

This file was deleted.

0 comments on commit 594160d

Please sign in to comment.