diff --git a/.gitignore b/.gitignore index f64f9d000..c6a4aff1e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +# setuptools-scm +gempy/_version.py + .vscode .idea .DS_Store diff --git a/gempy/_version.py b/gempy/_version.py deleted file mode 100644 index 86c00f251..000000000 --- a/gempy/_version.py +++ /dev/null @@ -1,16 +0,0 @@ -# file generated by setuptools_scm -# don't change, don't track in version control -TYPE_CHECKING = False -if TYPE_CHECKING: - from typing import Tuple, Union - VERSION_TUPLE = Tuple[Union[int, str], ...] -else: - VERSION_TUPLE = object - -version: str -__version__: str -__version_tuple__: VERSION_TUPLE -version_tuple: VERSION_TUPLE - -__version__ = version = '2024.2.0.3.dev0+gf344a731.d20240626' -__version_tuple__ = version_tuple = (2024, 2, 0, 3, 'dev0', 'gf344a731.d20240626') diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 000000000..6af219a3f --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,52 @@ +[build-system] +requires = ["setuptools>=80", "setuptools-scm>=8"] +build-backend = "setuptools.build_meta" + +[project] +name = "gempy" +description = "An Open-source, Python-based 3-D structural geological modeling software" +readme = "README.md" +authors = [ + {name = "Miguel de la Varga"}, + {name = "Alexander Zimmerman"}, + {name = "Elisa Heim"}, + {name = "Alexander Schaaf"}, + {name = "Fabian Stamm"}, + {name = "Florian Wellmann"}, + {name = "Jan Niederau"}, + {name = "Andrew Annex"}, +] +keywords = ["geology", "3-D modeling", "structural geology", "uncertainty"] +license = "EUPL-1.2" +license-files = ["LICENSE", "AUTHORS.rst"] +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "Operating System :: OS Independent", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", +] +requires-python = ">=3.10" +dynamic = ["version", "dependencies", "optional-dependencies"] + +[project.urls] +Homepage = "https://www.gempy.org/" +"Source Code" = "https://github.com/gempy-project/gempy" + +[tool.setuptools.dynamic] +dependencies = {file = "requirements/requirements.txt"} + +[tool.setuptools.dynamic.optional-dependencies.opt] +file = "requirements/optional-requirements.txt" + +[tool.setuptools.dynamic.optional-dependencies.base] +file = "requirements/base-requirements.txt" + +[tool.setuptools.packages.find] +include = ["gempy", "gempy.*"] + +[tool.setuptools_scm] +version_file = "gempy/_version.py" + diff --git a/requirements/base-requirements.txt b/requirements/base-requirements.txt index 51d854208..134ea71ca 100644 --- a/requirements/base-requirements.txt +++ b/requirements/base-requirements.txt @@ -1,4 +1,4 @@ --r requirements.txt +#-r requirements.txt # This install matplotlib gempy_viewer~=2025.1.4 diff --git a/requirements/dev-requirements.txt b/requirements/dev-requirements.txt index f44245ae0..b2f92f79d 100644 --- a/requirements/dev-requirements.txt +++ b/requirements/dev-requirements.txt @@ -1,4 +1,4 @@ --r optional-requirements.txt +#-r optional-requirements.txt pytest pyvista @@ -7,4 +7,4 @@ wellpathpy torch # Testing -pytest-approvaltests \ No newline at end of file +pytest-approvaltests diff --git a/requirements/docs_requirements.txt b/requirements/docs_requirements.txt index b8f94197c..ed57d57d7 100644 --- a/requirements/docs_requirements.txt +++ b/requirements/docs_requirements.txt @@ -1,4 +1,4 @@ --r dev-requirements.txt +#-r dev-requirements.txt torch rasterio @@ -10,4 +10,4 @@ sphinx_automodapi liquid-earth-sdk wellpathpy -openpyxl \ No newline at end of file +openpyxl diff --git a/requirements/optional-requirements.txt b/requirements/optional-requirements.txt index 0a44c2eaa..43e863a28 100644 --- a/requirements/optional-requirements.txt +++ b/requirements/optional-requirements.txt @@ -1,8 +1,8 @@ --r base-requirements.txt +#-r base-requirements.txt gempy_plugins # for data download pooch scipy -scikit-image \ No newline at end of file +scikit-image diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index 224a77957..000000000 --- a/setup.cfg +++ /dev/null @@ -1,2 +0,0 @@ -[metadata] -description-file = README.md \ No newline at end of file diff --git a/setup.py b/setup.py deleted file mode 100644 index 62870a454..000000000 --- a/setup.py +++ /dev/null @@ -1,67 +0,0 @@ -import os -from os import path - -from setuptools import setup, find_packages - - -def read_requirements(file_name, base_path=""): - # Construct the full path to the requirements file - full_path = os.path.join(base_path, file_name) - requirements = [] - with open(full_path, "r", encoding="utf-8") as f: - for line in f: - # Strip whitespace and ignore comments - line = line.strip() - if line.startswith("#") or not line: - continue - - # Handle -r directive - if line.startswith("-r "): - referenced_file = line.split()[1] # Extract the file name - # Recursively read the referenced file, making sure to include the base path - requirements.extend(read_requirements(referenced_file, base_path=base_path)) - else: - requirements.append(line) - - return requirements - - - - -with open("README.md", "r") as fh: - long_description = fh.read() - -setup( - name='gempy', - packages=find_packages(exclude=('test', 'docs', 'examples')), - install_requires=read_requirements("requirements.txt", "requirements"), - extras_require={ - "opt": read_requirements("optional-requirements.txt", "requirements"), - "base": read_requirements("base-requirements.txt", "requirements"), - }, - url='https://github.com/cgre-aachen/gempy', - license='EUPL-1.2', - author='Miguel de la Varga, Alexander Zimmerman, Elisa Heim, Alexander Schaaf, Fabian Stamm, Florian Wellmann, Jan Niederau, Andrew Annex', - author_email='gempy@terranigma-solutions.com', - description='An Open-source, Python-based 3-D structural geological modeling software.', - long_description=long_description, - long_description_content_type='text/markdown', - keywords=['geology', '3-D modeling', 'structural geology', 'uncertainty'], - classifiers=[ - "Development Status :: 5 - Production/Stable", - "Intended Audience :: Developers", - "License :: OSI Approved :: European Union Public Licence 1.2 (EUPL 1.2)", - "Operating System :: OS Independent", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", - "Programming Language :: Python :: 3.12", - ], - setup_requires=['setuptools_scm'], - use_scm_version={ - "root" : ".", - "relative_to" : __file__, - "write_to" : path.join("gempy", "_version.py"), - "fallback_version": "3.0.0" - }, -)