|
421 | 421 | "outputs": [], |
422 | 422 | "source": [ |
423 | 423 | "#| export\n", |
424 | | - "@functools.lru_cache(maxsize=None)\n", |
425 | | - "def get_config(path=None):\n", |
| 424 | + "def get_config(path=None, also_settings=False):\n", |
426 | 425 | " \"Return nbdev config.\"\n", |
427 | 426 | " cfg_file = _find_nbdev_pyproject(path)\n", |
428 | | - " if cfg_file is None: raise FileNotFoundError(\"No pyproject.toml with [tool.nbdev] found\")\n", |
429 | | - " # Check for old settings.ini and complain loudly\n", |
430 | | - " old_cfg = cfg_file.parent / 'settings.ini'\n", |
431 | | - " if old_cfg.exists():\n", |
432 | | - " raise ValueError(f\"Found old settings.ini at {old_cfg}. Please migrate to pyproject.toml using `nbdev_migrate`\")\n", |
433 | | - " d = _load_toml(cfg_file)\n", |
434 | | - " user = _user_config()\n", |
435 | | - " nbdev = {**user, **d.get('tool', {}).get('nbdev', {})} # project overrides user\n", |
436 | | - " return ConfigToml(nbdev, d.get('project', {}), cfg_file)" |
| 427 | + " if cfg_file is not None:\n", |
| 428 | + " # Check for old settings.ini and complain loudly\n", |
| 429 | + " old_cfg = cfg_file.parent / 'settings.ini'\n", |
| 430 | + " if old_cfg.exists() and not also_settings:\n", |
| 431 | + " raise ValueError(f\"Found old settings.ini at {old_cfg}. Please migrate to pyproject.toml using `nbdev_migrate`\")\n", |
| 432 | + " d = _load_toml(cfg_file)\n", |
| 433 | + " user = _user_config()\n", |
| 434 | + " nbdev = {**user, **d.get('tool', {}).get('nbdev', {})}\n", |
| 435 | + " return ConfigToml(nbdev, d.get('project', {}), cfg_file)\n", |
| 436 | + " if also_settings:\n", |
| 437 | + " from fastcore.foundation import Config\n", |
| 438 | + " cfg = Config.find('settings.ini', path)\n", |
| 439 | + " if cfg: return cfg\n", |
| 440 | + " cfg_path = Path(path or Path.cwd()).expanduser().absolute()\n", |
| 441 | + " return ConfigToml(nbdev_defaults, {}, cfg_path/'pyproject.toml')" |
437 | 442 | ] |
438 | 443 | }, |
439 | 444 | { |
|
0 commit comments