1
0
Fork 0
mirror of https://git.sr.ht/~kivikakk/niar synced 2024-12-22 12:42:23 +00:00

project: add NIAR_WORKING_DIRECTORY support.

This commit is contained in:
Asherah Connor 2024-08-08 09:49:33 +03:00
parent 96df013632
commit bf3738f777
2 changed files with 20 additions and 10 deletions

View file

@ -2,6 +2,10 @@
## 0.1.3 (unreleased)
New:
* project: `NIAR_WORKING_DIRECTORY` can be used to override the origin.
## 0.1.2
New:

View file

@ -1,3 +1,4 @@
import os
import sys
from pathlib import Path
from typing import Optional
@ -100,6 +101,9 @@ class Project:
]
def __init_subclass__(cls):
if origin := os.getenv("NIAR_WORKING_DIRECTORY"):
cls.origin = Path(origin).absolute()
else:
# We expect to be called from project-root/module/__init.py__ or similar;
# cls.origin is project-root. Keep going up until we find pyproject.toml.
origin = Path(sys._getframe(1).f_code.co_filename).absolute().parent
@ -111,6 +115,8 @@ class Project:
assert False, "could not find pyproject.toml"
origin = origin.parent
os.chdir(cls.origin)
extras = cls.__dict__.keys() - {"__module__", "__doc__", "origin"}
for prop in cls.PROPS:
prop.validate(cls)