8 |
8 |
import setuptools
|
9 |
9 |
|
10 |
10 |
from setuptools.command.build_py import build_py
|
|
11 |
from setuptools.command.sdist import sdist
|
|
12 |
|
|
13 |
from pathlib import Path
|
|
14 |
|
|
15 |
here = Path(__file__).resolve().parent
|
11 |
16 |
|
12 |
17 |
class CustomBuildCommand(build_py):
|
13 |
|
'''
|
14 |
|
The build command but runs babel before build.
|
15 |
|
'''
|
|
18 |
"""The build command but runs babel before build."""
|
16 |
19 |
def run(self, *args, **kwargs):
|
|
20 |
"""Wrapper around build_py's original run() method."""
|
17 |
21 |
self.run_command('compile_catalog')
|
|
22 |
|
|
23 |
super().run(*args, **kwargs)
|
|
24 |
|
|
25 |
class CustomSdistCommand(sdist):
|
|
26 |
"""
|
|
27 |
The sdist command but prevents compiled message catalogs from being included
|
|
28 |
in the archive.
|
|
29 |
"""
|
|
30 |
def run(self, *args, **kwargs):
|
|
31 |
"""Wrapper around sdist's original run() method."""
|
|
32 |
locales_dir = here / 'src/hydrilla/builder/locales'
|
|
33 |
locale_files = {}
|
|
34 |
|
|
35 |
for path in locales_dir.rglob('*.mo'):
|
|
36 |
locale_files[path] = path.read_bytes()
|
|
37 |
|
|
38 |
for path in locale_files:
|
|
39 |
path.unlink()
|
|
40 |
|
18 |
41 |
super().run(*args, **kwargs)
|
19 |
42 |
|
20 |
|
setuptools.setup(cmdclass={'build_py': CustomBuildCommand})
|
|
43 |
for path, contents in locale_files.items():
|
|
44 |
path.write_bytes(contents)
|
|
45 |
|
|
46 |
setuptools.setup(cmdclass = {
|
|
47 |
'build_py': CustomBuildCommand,
|
|
48 |
'sdist': CustomSdistCommand
|
|
49 |
})
|
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.