Skip to content

Commit

Permalink
refactor: move setting of package from setup.py to pyproject.toml
Browse files Browse the repository at this point in the history
  • Loading branch information
vorel99 committed Sep 17, 2023
1 parent cb66a7e commit b31dd42
Show file tree
Hide file tree
Showing 3 changed files with 122 additions and 55 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ __pycache__/
.Python
.venv
env/
venv/
.venv/
build/
develop-eggs/
dist/
Expand Down
119 changes: 119 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"

[project]
name = "ydata-profiling"
authors = [
{name = "YData Labs Inc", email = "[email protected]"},
]
description="Generate profile report for pandas DataFrame"
readme = "README.md"
requires-python=">=3.7, <3.12"
keywords=["pandas", "data-science", "data-analysis", "python", "jupyter", "ipython"]
license = {text = "MIT"}
classifiers=[
"Development Status :: 5 - Production/Stable",
"Topic :: Software Development :: Build Tools",
"License :: OSI Approved :: MIT License",
"Environment :: Console",
"Operating System :: OS Independent",
"Intended Audience :: Science/Research",
"Intended Audience :: Developers",
"Intended Audience :: Financial and Insurance Industry",
"Intended Audience :: Healthcare Industry",
"Topic :: Scientific/Engineering",
"Framework :: IPython",
"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",
]

dependencies = [
"scipy>=1.4.1, <1.12",
"pandas>1.1, <2.1, !=1.4.0",
"matplotlib>=3.2, <3.8",
"pydantic>=1.8.1, <2",
"PyYAML>=5.0.0, <6.1",
"jinja2>=2.11.1, <3.2",
"visions[type_image_path]==0.7.5",
"numpy>=1.16.0,<1.24",
# Could be optional
# Related to HTML report
"htmlmin==0.1.12",
# Correlations
"phik>=0.11.1,<0.13",
# Examples
"requests>=2.24.0, <3",
# Progress bar
"tqdm>=4.48.2, <5",
"seaborn>=0.10.1, <0.13",
"multimethod>=1.4, <2",
# metrics
"statsmodels>=0.13.2, <1",
# type checking
"typeguard>=2.13.2, <3",
"imagehash==4.3.1",
"wordcloud>=1.9.1",
"dacite>=1.8",
]

dynamic = ["version"]

[project.optional-dependencies]
# dependencies for development and testing
dev = [
"black>=20.8b1",
"codecov",
"coverage~=6.5",
"isort>=5.0.7",
"kaggle",
"nbval",
"pip-tools",
"pre-commit>=2.8.2",
"pytest",
"pytest-cov",
"pyarrow",
"twine>=3.1.1",
"wheel",
]
pandas = [
"autodoc_pydantic",
"myst-parser>=0.18.1",
"sphinx_rtd_theme>=0.4.3",
"sphinx-autodoc-typehints>=1.10.3",
"sphinx-multiversion>=0.2.3",
"twine",
"virtualenv>=20.0.33",
]
# this provides the recommended pyspark and pyarrow versions for spark to work on pandas-profiling
# note that if you are using pyspark 2.3 or 2.4 and pyarrow >= 0.15, you might need to
# set ARROW_PRE_0_15_IPC_FORMAT=1 in your conf/spark-env.sh for toPandas functions to work properly
spark = [
"pyspark>=2.3.0",
"pyarrow>=2.0.0",
]
notebook = [
"jupyter-client>=5.3.4",
"jupyter-core>=4.6.3",
"ipywidgets>=7.5.1",
]

[tool.setuptools.packages.find]
where = ["src"]

[tool.setuptools.package-data]
ydata_profiling = ["py.typed"]

[tool.setuptools]
include-package-data = true

[project.scripts]
ydata_profiling = "ydata_profiling.controller.console:main"
pandas_profiling = "ydata_profiling.controller.console:main"

[project.urls]
homepage = "https://github.com/ydataai/ydata-profiling"
56 changes: 1 addition & 55 deletions setup.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,12 @@
from pathlib import Path

from setuptools import find_packages, setup
from setuptools import setup

# Read the contents of README file
source_root = Path(".")
with (source_root / "README.md").open(encoding="utf-8") as f:
long_description = f.read()

# Read the requirements
with (source_root / "requirements.txt").open(encoding="utf8") as f:
requirements = f.readlines()

try:
version = (source_root / "VERSION").read_text().rstrip("\n")
except FileNotFoundError:
Expand All @@ -20,58 +16,8 @@
version_file.write(f"__version__ = '{version}'")

setup(
name="ydata-profiling",
version=version,
author="YData Labs Inc",
author_email="[email protected]",
packages=find_packages("src"),
package_dir={"": "src"},
url="https://github.com/ydataai/ydata-profiling",
license="MIT",
description="Generate profile report for pandas DataFrame",
python_requires=">=3.7, <3.12",
install_requires=requirements,
extras_require={
"notebook": [
"jupyter-client>=5.3.4",
"jupyter-core>=4.6.3",
"ipywidgets>=7.5.1",
],
"unicode": [
"tangled-up-in-unicode==0.2.0",
],
},
package_data={
"ydata_profiling": ["py.typed"],
},
include_package_data=True,
classifiers=[
"Development Status :: 5 - Production/Stable",
"Topic :: Software Development :: Build Tools",
"License :: OSI Approved :: MIT License",
"Environment :: Console",
"Operating System :: OS Independent",
"Intended Audience :: Science/Research",
"Intended Audience :: Developers",
"Intended Audience :: Financial and Insurance Industry",
"Intended Audience :: Healthcare Industry",
"Topic :: Scientific/Engineering",
"Framework :: IPython",
"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",
],
keywords="pandas data-science data-analysis python jupyter ipython",
long_description=long_description,
long_description_content_type="text/markdown",
entry_points={
"console_scripts": [
"ydata_profiling = ydata_profiling.controller.console:main",
"pandas_profiling = ydata_profiling.controller.console:main",
]
},
options={"bdist_wheel": {"universal": True}},
)

0 comments on commit b31dd42

Please sign in to comment.