path
from corio import path
path is one of the core modules in corio. It extends pathlib.Path and provides package-aware path resolution helpers used throughout the rest of the library.
Primary exports:
Path: enhanced path object with convenience readers/writers (json,yaml,toml,.env, inferredread_data/write_data)PackagePaths: canonical package/repo metadata and path discoveryAppPaths: appdirs wrapper (path.appextra)
What Is Useful Here
Path.read_data()/Path.write_data(obj)infer serializer by suffix:.json-> JSON.yaml/.yml-> YAML.toml-> TOML.env-> dotenv map- unknown -> text
Path.find_up(name)walks up parent directories for repo-root style config lookup.Path.mkdirf()is aparents=True, exist_ok=Trueconvenience.PackagePaths().metadatagives strongly-typed access totool.corio.metadatafrom packagepyproject.- WSL absolute Windows paths are auto-converted when running under WSL.
Examples
from corio import Path
path = Path("settings.yaml")
config = path.read_data() # same as read_yaml() here
out = Path("build/runtime.toml")
out.parent.mkdirf()
out.write_data({"name": "corio", "enabled": True})
runtime = out.read_data()
from corio import PackagePaths
paths = PackagePaths()
print(paths.repo)
print(paths.metadata.version)
print(paths.metadata.description)
from corio import Path
path_secrets = Path.cwd().find_up(".secrets.yml")
print(path_secrets)
Serializer Methods
Path also exposes explicit methods when you do not want extension inference:
read_json()/write_json()read_yaml()/write_yaml()read_toml()/write_toml()read_env()/write_env()