aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWojtek Kosior <koszko@koszko.org>2022-06-14 10:40:57 +0200
committerWojtek Kosior <koszko@koszko.org>2022-06-14 10:40:57 +0200
commit01c1904a45784a100e90d27b465fead8c4aed4e9 (patch)
tree5d97b6a1559aaeb55e0bede25fb46924d7edc7db
parent0009efd8588b462cfbbc6d69c1dcc1cf2230dd4a (diff)
downloadhydrilla-builder-01c1904a45784a100e90d27b465fead8c4aed4e9.tar.gz
hydrilla-builder-01c1904a45784a100e90d27b465fead8c4aed4e9.zip
improve packaging of data files
This commit stops setuptools from presenting a depracetion warning. This commit ensures .mo files will not be included in source distributions.
-rw-r--r--setup.cfg2
-rwxr-xr-xsetup.py37
2 files changed, 34 insertions, 5 deletions
diff --git a/setup.cfg b/setup.cfg
index b6077ea..f3f5818 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -30,7 +30,7 @@ classifiers =
zip_safe = False
package_dir =
= src
-packages = find:
+packages = find_namespace:
include_package_data=True
python_requires = >= 3.7
install_requires =
diff --git a/setup.py b/setup.py
index 345febc..9bc0a62 100755
--- a/setup.py
+++ b/setup.py
@@ -8,13 +8,42 @@
import setuptools
from setuptools.command.build_py import build_py
+from setuptools.command.sdist import sdist
+
+from pathlib import Path
+
+here = Path(__file__).resolve().parent
class CustomBuildCommand(build_py):
- '''
- The build command but runs babel before build.
- '''
+ """The build command but runs babel before build."""
def run(self, *args, **kwargs):
+ """Wrapper around build_py's original run() method."""
self.run_command('compile_catalog')
+
+ super().run(*args, **kwargs)
+
+class CustomSdistCommand(sdist):
+ """
+ The sdist command but prevents compiled message catalogs from being included
+ in the archive.
+ """
+ def run(self, *args, **kwargs):
+ """Wrapper around sdist's original run() method."""
+ locales_dir = here / 'src/hydrilla/builder/locales'
+ locale_files = {}
+
+ for path in locales_dir.rglob('*.mo'):
+ locale_files[path] = path.read_bytes()
+
+ for path in locale_files:
+ path.unlink()
+
super().run(*args, **kwargs)
-setuptools.setup(cmdclass={'build_py': CustomBuildCommand})
+ for path, contents in locale_files.items():
+ path.write_bytes(contents)
+
+setuptools.setup(cmdclass = {
+ 'build_py': CustomBuildCommand,
+ 'sdist': CustomSdistCommand
+})