mirror of
https://github.com/jbowdre/phpIPAM-for-vRA8.git
synced 2024-11-27 09:22:19 +00:00
41 lines
1.3 KiB
Python
41 lines
1.3 KiB
Python
|
import textwrap
|
||
|
|
||
|
|
||
|
def build_namespace_package(tmpdir, name):
|
||
|
src_dir = tmpdir / name
|
||
|
src_dir.mkdir()
|
||
|
setup_py = src_dir / 'setup.py'
|
||
|
namespace, sep, rest = name.partition('.')
|
||
|
script = textwrap.dedent("""
|
||
|
import setuptools
|
||
|
setuptools.setup(
|
||
|
name={name!r},
|
||
|
version="1.0",
|
||
|
namespace_packages=[{namespace!r}],
|
||
|
packages=[{namespace!r}],
|
||
|
)
|
||
|
""").format(**locals())
|
||
|
setup_py.write_text(script, encoding='utf-8')
|
||
|
ns_pkg_dir = src_dir / namespace
|
||
|
ns_pkg_dir.mkdir()
|
||
|
pkg_init = ns_pkg_dir / '__init__.py'
|
||
|
tmpl = '__import__("pkg_resources").declare_namespace({namespace!r})'
|
||
|
decl = tmpl.format(**locals())
|
||
|
pkg_init.write_text(decl, encoding='utf-8')
|
||
|
pkg_mod = ns_pkg_dir / (rest + '.py')
|
||
|
some_functionality = 'name = {rest!r}'.format(**locals())
|
||
|
pkg_mod.write_text(some_functionality, encoding='utf-8')
|
||
|
return src_dir
|
||
|
|
||
|
|
||
|
def make_site_dir(target):
|
||
|
"""
|
||
|
Add a sitecustomize.py module in target to cause
|
||
|
target to be added to site dirs such that .pth files
|
||
|
are processed there.
|
||
|
"""
|
||
|
sc = target / 'sitecustomize.py'
|
||
|
target_str = str(target)
|
||
|
tmpl = '__import__("site").addsitedir({target_str!r})'
|
||
|
sc.write_text(tmpl.format(**locals()), encoding='utf-8')
|