Repo created

This commit is contained in:
Fr4nz D13trich 2025-11-22 13:58:55 +01:00
parent 4af19165ec
commit 68073add76
12458 changed files with 12350765 additions and 2 deletions

View file

21
tools/python/data/all/setup.py Executable file
View file

@ -0,0 +1,21 @@
#!/usr/bin/env python3
import os
import sys
module_dir = os.path.abspath(os.path.dirname(__file__))
sys.path.insert(0, os.path.join(module_dir, "..", ".."))
from data.base import get_version
from data.base import setup
_V = get_version()
_D = [
"omim-data-borders",
"omim-data-essential",
"omim-data-files",
"omim-data-fonts",
"omim-data-styles",
]
setup(__file__, "all", [], install_requires=["{}=={}".format(d, _V) for d in _D])

69
tools/python/data/base.py Normal file
View file

@ -0,0 +1,69 @@
import os
import sys
from collections import defaultdict
import setuptools
module_dir = os.path.abspath(os.path.dirname(__file__))
sys.path.insert(0, os.path.join(module_dir, "..", "..", ".."))
from pyhelpers.setup import chdir
from pyhelpers.setup import get_version
DATA_PATH = os.path.abspath(
os.path.join(os.path.dirname(__file__), "..", "..", "..", "data")
)
def get_files_from_dir(abs_root_path, b, data_files):
for root, dirs, files in os.walk(abs_root_path):
data_files[b].extend(os.path.join(root, f) for f in files)
for d in dirs:
get_files_from_dir(
os.path.join(abs_root_path, d), os.path.join(b, d), data_files
)
def get_data_files(relative_data_paths):
data_files = defaultdict(lambda: [])
for p in relative_data_paths:
path = os.path.join(DATA_PATH, p)
b = os.path.join("omim-data", path.replace(DATA_PATH + os.path.sep, ""))
if os.path.isdir(path):
get_files_from_dir(path, b, data_files)
else:
b = os.path.dirname(b)
data_files[b].append(path)
return data_files.items()
def setup(
source_file,
suffix,
relative_data_paths,
packages=None,
package_dir=None,
install_requires=None,
cmdclass=None,
supported_pythons=("2", "2.7", "3", "3.5", "3.6", "3.7", "3.8", "3.9"),
):
with chdir(os.path.abspath(os.path.dirname(source_file))):
setuptools.setup(
name="omim-data-{}".format(suffix),
version=str(get_version()),
author="CoMaps",
author_email="info@comaps.app",
description="This package contains {} data files.".format(suffix),
url="https://codeberg.org/comaps",
packages=[] if packages is None else packages,
package_dir={} if package_dir is None else package_dir,
cmdclass={} if cmdclass is None else cmdclass,
classifiers=["License :: OSI Approved :: Apache Software License",]
+ [
"Programming Language :: Python :: {}".format(supported_python)
for supported_python in supported_pythons
],
install_requires=install_requires or [],
data_files=get_data_files(relative_data_paths),
)

View file

@ -0,0 +1,44 @@
import logging
import os
import tarfile
from six import BytesIO
from data_files import find_data_files
try:
import lzma
except ImportError:
from backports import lzma
logger = logging.getLogger(__name__)
def init(borders_path=None):
data_path = find_data_files("omim-data")
if data_path is None:
logger.error("omim-data was not found.")
return False
if borders_path is None:
borders_path = os.path.join(data_path, "borders")
if not os.path.exists(borders_path):
tar_lzma_path = os.path.join(data_path, "borders.tar.xz")
lzma_stream = BytesIO()
with open(tar_lzma_path, mode="rb") as f:
decompressed = lzma.decompress(f.read())
lzma_stream.write(decompressed)
lzma_stream.seek(0)
try:
with tarfile.open(fileobj=lzma_stream, mode="r") as tar:
tar.extractall(borders_path)
except PermissionError as e:
logger.error(str(e))
return False
logger.info("{} was created.".format(borders_path))
return True

View file

@ -0,0 +1,63 @@
#!/usr/bin/env python3
import os
import sys
import tarfile
from distutils import log
from distutils.command.build import build
from distutils.command.clean import clean
from six import BytesIO
try:
import lzma
except ImportError:
from backports import lzma
module_dir = os.path.abspath(os.path.dirname(__file__))
sys.path.insert(0, os.path.join(module_dir, "..", ".."))
from data.base import DATA_PATH
from data.base import chdir
from data.base import get_version
from data.base import setup
TAR_LZMA_PATH = os.path.join(DATA_PATH, "borders.tar.xz")
class BuildCmd(build, object):
def run(self):
log.info("Creating {}".format(TAR_LZMA_PATH))
tar_stream = BytesIO()
borders_path = os.path.join(DATA_PATH, "borders")
with chdir(borders_path):
with tarfile.open(fileobj=tar_stream, mode="w") as tar:
for f in os.listdir(borders_path):
tar.add(f)
tar_stream.seek(0)
with lzma.open(TAR_LZMA_PATH, mode="w") as f:
f.write(tar_stream.read())
super(BuildCmd, self).run()
class CleanCmd(clean, object):
def run(self):
if os.path.exists(TAR_LZMA_PATH):
log.info("Removing {}".format(TAR_LZMA_PATH))
os.remove(TAR_LZMA_PATH)
super(CleanCmd, self).run()
setup(
__file__,
"borders",
["borders.tar.xz", "packed_polygons.bin"],
package_dir={"borders": ""},
packages=["borders"],
cmdclass={"build": BuildCmd, "clean": CleanCmd},
install_requires=["omim-data-files=={}".format(get_version())]
)

View file

@ -0,0 +1,44 @@
#!/usr/bin/env python3
import os
import sys
module_dir = os.path.abspath(os.path.dirname(__file__))
sys.path.insert(0, os.path.join(module_dir, "..", ".."))
from data.base import get_version
from data.base import setup
setup(
__file__,
"essential",
[
"borders_vs_osm.csv",
"categories_brands.txt",
"categories_cuisines.txt",
"categories.txt",
"classificator.txt",
"colors.txt",
"countries_meta.txt",
"countries_synonyms.csv",
"countries.txt",
"external_resources.txt",
"fonts/blacklist.txt",
"fonts/unicode_blocks.txt",
"fonts/whitelist.txt",
"hierarchy.txt",
"mapcss-dynamic.txt",
"mapcss-mapping.csv",
"mixed_nodes.txt",
"mixed_tags.txt",
"old_vs_new.csv",
"patterns.txt",
"replaced_tags.txt",
"skipped_elements.json",
"synonyms.txt",
"transit_colors.txt",
"types.txt",
"ugc_types.csv",
"visibility.txt",
],
install_requires=["omim-data-files=={}".format(get_version())]
)

View file

@ -0,0 +1,26 @@
#!/usr/bin/env python3
import os
import sys
module_dir = os.path.abspath(os.path.dirname(__file__))
sys.path.insert(0, os.path.join(module_dir, "..", ".."))
from data.base import get_version
from data.base import setup
setup(
__file__,
"fonts",
[
"00_NotoNaskhArabic-Regular.ttf",
"00_NotoSansThai-Regular.ttf",
"01_dejavusans.ttf",
"02_droidsans-fallback.ttf",
"03_jomolhari-id-a3d.ttf",
"04_padauk.ttf",
"05_khmeros.ttf",
"06_code2000.ttf",
"07_roboto_medium.ttf",
],
install_requires=["omim-data-files=={}".format(get_version())]
)

View file

@ -0,0 +1,26 @@
#!/usr/bin/env python3
import os
import sys
module_dir = os.path.abspath(os.path.dirname(__file__))
sys.path.insert(0, os.path.join(module_dir, "..", ".."))
from data.base import get_version
from data.base import setup
setup(
__file__,
"styles",
[
"drules_proto.bin",
"drules_proto_default_light.bin",
"drules_proto_default_light.txt",
"drules_proto_default_dark.bin",
"drules_proto_default_dark.txt",
"drules_proto_vehicle_light.bin",
"drules_proto_vehicle_light.txt",
"drules_proto_vehicle_dark.bin",
"drules_proto_vehicle_dark.txt",
],
install_requires=["omim-data-files=={}".format(get_version())]
)