Source code for aequilibrae.utils.create_example
import zipfile
import os
from os.path import dirname, join
from pathlib import Path
from typing import List
from aequilibrae.project import Project
[docs]
def create_example(path: os.PathLike, from_model="sioux_falls") -> Project:
"""Copies an example model to a new project project and returns the project handle
:Arguments:
**path** (:obj:`str`): Path where to create a new model. must be a non-existing folder/directory.
**from_model** (:obj:`str`, *Optional*): Example to create from *sioux_falls*, *nauru* or *coquimbo*.
Defaults to *sioux_falls*
:Returns:
**project** (:obj:`Project`): Aequilibrae Project handle (open)
"""
pth = Path(path)
if pth.is_dir() and pth.exists():
raise FileExistsError("Cannot overwrite an existing directory")
source = Path(__file__).parent.parent / "reference_files" / f"{from_model}.zip"
if not source.exists():
raise FileExistsError("Example not found")
pth.mkdir(parents=True, exist_ok=True)
zipfile.ZipFile(source).extractall(pth)
proj = Project()
proj.open(str(pth))
return proj
[docs]
def list_examples() -> List[str]:
pth = Path(__file__).parent.parent / "reference_files"
return [str(x.stem) for x in pth.glob("*.zip")]