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: str, 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)
"""
if os.path.isdir(path):
raise FileExistsError("Cannot overwrite an existing directory")
if not os.path.isfile(join(dirname(__file__), f"../reference_files/{from_model}.zip")):
raise FileExistsError("Example not found")
os.makedirs(path, exist_ok=True)
zipfile.ZipFile(join(dirname(__file__), f"../reference_files/{from_model}.zip")).extractall(path)
proj = Project()
proj.open(path)
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")]