protoprimer 0.12.0.dev2__tar.gz → 0.12.1.dev0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: protoprimer
3
- Version: 0.12.0.dev2
3
+ Version: 0.12.1.dev0
4
4
  Summary: Escape the fragile mess of pre-venv shell scripts with a pure Python bootstrap wrapper: 🚀 ⏩ single-touch, zero-args, self-contained, no-deps, cross-platform, testable init logic using standard tools to run apps in a custom environment isolated per repository
5
5
  Author-email: uvsmtid <uvsmtid@gmail.com>
6
6
  License: MIT
@@ -52,7 +52,7 @@ from typing import (
52
52
 
53
53
  # The release process ensures that content in this file matches the version below while tagging the release commit
54
54
  # (otherwise, if the file comes from a different commit, the version is irrelevant):
55
- __version__ = "0.12.0.dev2"
55
+ __version__ = "0.12.1.dev0"
56
56
 
57
57
  logger: logging.Logger = logging.getLogger()
58
58
 
@@ -643,15 +643,15 @@ class ConfField(enum.Enum):
643
643
  # state_venv_driver_inited:
644
644
  field_venv_driver = f"{ValueName.value_venv_driver.value}"
645
645
 
646
+ # state_version_constraints_file_basename_inited:
647
+ field_version_constraints_file_basename = f"{ValueName.value_version_constraints.value}_{ValueName.value_file_basename.value}"
648
+
646
649
  # parent of `field_build_root_dir_rel_path` & `field_install_extras`:
647
650
  # state_project_descriptors_inited:
648
651
  field_project_descriptors = f"{ValueName.value_project_descriptors.value}"
649
652
 
650
653
  field_install_specs = f"{ValueName.value_install_specs.value}"
651
654
 
652
- # state_version_constraints_file_basename_inited:
653
- field_version_constraints_file_basename = f"{ValueName.value_version_constraints.value}_{ValueName.value_file_basename.value}"
654
-
655
655
  ####################################################################################################################
656
656
 
657
657
  # child of `field_project_descriptors`:
@@ -1413,6 +1413,8 @@ class ConfConstEnv:
1413
1413
  # The default is `uv` only if it is supported by the selected `python` version:
1414
1414
  default_venv_driver = VenvDriverType.venv_uv.name
1415
1415
 
1416
+ default_version_constraints_file_basename = "constraints.txt"
1417
+
1416
1418
  default_project_descriptors = [
1417
1419
  {
1418
1420
  ConfField.field_build_root_dir_rel_path.value: ".",
@@ -1423,8 +1425,6 @@ class ConfConstEnv:
1423
1425
 
1424
1426
  default_install_specs = []
1425
1427
 
1426
- default_version_constraints_file_basename = "constraints.txt"
1427
-
1428
1428
  # FT_84_11_73_28.supported_python_versions.md:
1429
1429
  latest_known_python_version = "3.14"
1430
1430
 
@@ -1470,6 +1470,15 @@ def _create_parent_argparser():
1470
1470
  default=0,
1471
1471
  help="Increase log verbosity level.",
1472
1472
  )
1473
+ parent_argparser.add_argument(
1474
+ SyntaxArg.arg_e,
1475
+ SyntaxArg.arg_env,
1476
+ type=str,
1477
+ default=None,
1478
+ dest=ParsedArg.name_selected_env_dir.value,
1479
+ metavar=ParsedArg.name_selected_env_dir.value,
1480
+ help="Path to the env-specific config dir.",
1481
+ )
1473
1482
  return parent_argparser
1474
1483
 
1475
1484
 
@@ -1482,21 +1491,6 @@ def _create_child_argparser(parent_argparsers):
1482
1491
  description=sub_command_desc,
1483
1492
  )
1484
1493
  parser_boot.set_defaults(sub_command=SubCommand.command_boot.value)
1485
- parser_boot.add_argument(
1486
- SyntaxArg.arg_e,
1487
- SyntaxArg.arg_env,
1488
- type=str,
1489
- default=None,
1490
- dest=ParsedArg.name_selected_env_dir.value,
1491
- metavar=ParsedArg.name_selected_env_dir.value,
1492
- help=(
1493
- f"Path to the env-specific config dir. "
1494
- f"If specified, `{SubCommand.command_boot.value}` sub command creates the symlink to that dir. "
1495
- f"If not specified, the existing symlink is reused. "
1496
- #
1497
- ),
1498
- )
1499
-
1500
1494
  parser_boot.add_argument(
1501
1495
  SyntaxArg.arg_c,
1502
1496
  SyntaxArg.arg_command,
@@ -2785,6 +2779,9 @@ class Base_state_selected_env_dir_rel_path(AbstractCachingStateNode[str]):
2785
2779
  raise NotImplementedError()
2786
2780
 
2787
2781
  def _select_client_local_env_dir_any_path(self) -> str | None:
2782
+ """
2783
+ TODO: TODO_41_10_50_01.implement_env_selector.md
2784
+ """
2788
2785
  env_conf_dir_any_path = self._select_env_conf_dir_any_path()
2789
2786
  if env_conf_dir_any_path is None:
2790
2787
  # Use the default env configured:
@@ -2875,9 +2872,6 @@ class Bootstrapper_state_selected_env_dir_rel_path_inited_not_func_boot_env(Base
2875
2872
 
2876
2873
  # noinspection PyPep8Naming
2877
2874
  class Factory_state_selected_env_dir_rel_path_inited(NodeFactory[StateStride]):
2878
- """
2879
- This is a special node - it traverses ALL nodes.
2880
- """
2881
2875
 
2882
2876
  def create_state_node(self) -> StateNode[ValueType]:
2883
2877
  if self.env_ctx.graph_coordinates.entry_func in [
@@ -3312,7 +3306,7 @@ class Bootstrapper_state_venv_driver_inited(AbstractOverriddenFieldCachingStateN
3312
3306
 
3313
3307
  # noinspection PyPep8Naming
3314
3308
  @trivial_factory
3315
- class Bootstrapper_state_project_descriptors_inited(AbstractOverriddenFieldCachingStateNode[list]):
3309
+ class Bootstrapper_state_version_constraints_file_basename_inited(AbstractOverriddenFieldCachingStateNode[str]):
3316
3310
 
3317
3311
  _parent_states = staticmethod(
3318
3312
  lambda: [
@@ -3320,21 +3314,18 @@ class Bootstrapper_state_project_descriptors_inited(AbstractOverriddenFieldCachi
3320
3314
  EnvState.state_env_conf_file_data_loaded.name,
3321
3315
  ]
3322
3316
  )
3323
- _state_name = staticmethod(lambda: EnvState.state_project_descriptors_inited.name)
3317
+ _state_name = staticmethod(lambda: EnvState.state_version_constraints_file_basename_inited.name)
3324
3318
 
3325
3319
  def _eval_state_once(self) -> ValueType:
3326
-
3327
- project_descriptors: list = self._get_overridden_value_or_default(
3328
- ConfField.field_project_descriptors.value,
3329
- ConfConstEnv.default_project_descriptors,
3320
+ return self._get_overridden_value_or_default(
3321
+ ConfField.field_version_constraints_file_basename.value,
3322
+ ConfConstEnv.default_version_constraints_file_basename,
3330
3323
  )
3331
3324
 
3332
- return project_descriptors
3333
-
3334
3325
 
3335
3326
  # noinspection PyPep8Naming
3336
3327
  @trivial_factory
3337
- class Bootstrapper_state_install_specs_inited(AbstractOverriddenFieldCachingStateNode[list]):
3328
+ class Bootstrapper_state_project_descriptors_inited(AbstractOverriddenFieldCachingStateNode[list]):
3338
3329
 
3339
3330
  _parent_states = staticmethod(
3340
3331
  lambda: [
@@ -3342,21 +3333,21 @@ class Bootstrapper_state_install_specs_inited(AbstractOverriddenFieldCachingStat
3342
3333
  EnvState.state_env_conf_file_data_loaded.name,
3343
3334
  ]
3344
3335
  )
3345
- _state_name = staticmethod(lambda: EnvState.state_install_specs_inited.name)
3336
+ _state_name = staticmethod(lambda: EnvState.state_project_descriptors_inited.name)
3346
3337
 
3347
3338
  def _eval_state_once(self) -> ValueType:
3348
3339
 
3349
- install_specs: list = self._get_overridden_value_or_default(
3350
- ConfField.field_install_specs.value,
3351
- ConfConstEnv.default_install_specs,
3340
+ project_descriptors: list = self._get_overridden_value_or_default(
3341
+ ConfField.field_project_descriptors.value,
3342
+ ConfConstEnv.default_project_descriptors,
3352
3343
  )
3353
3344
 
3354
- return install_specs
3345
+ return project_descriptors
3355
3346
 
3356
3347
 
3357
3348
  # noinspection PyPep8Naming
3358
3349
  @trivial_factory
3359
- class Bootstrapper_state_version_constraints_file_basename_inited(AbstractOverriddenFieldCachingStateNode[str]):
3350
+ class Bootstrapper_state_install_specs_inited(AbstractOverriddenFieldCachingStateNode[list]):
3360
3351
 
3361
3352
  _parent_states = staticmethod(
3362
3353
  lambda: [
@@ -3364,14 +3355,17 @@ class Bootstrapper_state_version_constraints_file_basename_inited(AbstractOverri
3364
3355
  EnvState.state_env_conf_file_data_loaded.name,
3365
3356
  ]
3366
3357
  )
3367
- _state_name = staticmethod(lambda: EnvState.state_version_constraints_file_basename_inited.name)
3358
+ _state_name = staticmethod(lambda: EnvState.state_install_specs_inited.name)
3368
3359
 
3369
3360
  def _eval_state_once(self) -> ValueType:
3370
- return self._get_overridden_value_or_default(
3371
- ConfField.field_version_constraints_file_basename.value,
3372
- ConfConstEnv.default_version_constraints_file_basename,
3361
+
3362
+ install_specs: list = self._get_overridden_value_or_default(
3363
+ ConfField.field_install_specs.value,
3364
+ ConfConstEnv.default_install_specs,
3373
3365
  )
3374
3366
 
3367
+ return install_specs
3368
+
3375
3369
 
3376
3370
  # noinspection PyPep8Naming
3377
3371
  @trivial_factory
@@ -3413,6 +3407,7 @@ class Bootstrapper_state_derived_conf_data_loaded(AbstractCachingStateNode[dict]
3413
3407
  EnvState.state_local_tmp_dir_abs_path_inited.name,
3414
3408
  EnvState.state_local_cache_dir_abs_path_inited.name,
3415
3409
  EnvState.state_venv_driver_inited.name,
3410
+ EnvState.state_version_constraints_file_basename_inited.name,
3416
3411
  EnvState.state_project_descriptors_inited.name,
3417
3412
  ]
3418
3413
 
@@ -3864,9 +3859,9 @@ class Bootstrapper_state_protoprimer_package_installed(AbstractCachingStateNode[
3864
3859
  EnvState.state_input_sub_command_arg_loaded.name,
3865
3860
  EnvState.state_ref_root_dir_abs_path_inited.name,
3866
3861
  EnvState.state_local_conf_symlink_abs_path_inited.name,
3862
+ EnvState.state_version_constraints_file_basename_inited.name,
3867
3863
  EnvState.state_project_descriptors_inited.name,
3868
3864
  EnvState.state_install_specs_inited.name,
3869
- EnvState.state_version_constraints_file_basename_inited.name,
3870
3865
  EnvState.state_venv_driver_prepared.name,
3871
3866
  EnvState.state_stride_py_venv_reached.name,
3872
3867
  ]
@@ -4370,12 +4365,12 @@ class EnvState(enum.Enum):
4370
4365
 
4371
4366
  state_venv_driver_inited = Bootstrapper_state_venv_driver_inited
4372
4367
 
4368
+ state_version_constraints_file_basename_inited = Bootstrapper_state_version_constraints_file_basename_inited
4369
+
4373
4370
  state_project_descriptors_inited = Bootstrapper_state_project_descriptors_inited
4374
4371
 
4375
4372
  state_install_specs_inited = Bootstrapper_state_install_specs_inited
4376
4373
 
4377
- state_version_constraints_file_basename_inited = Bootstrapper_state_version_constraints_file_basename_inited
4378
-
4379
4374
  # `ConfLeap.leap_derived`:
4380
4375
  state_derived_conf_data_loaded = Bootstrapper_state_derived_conf_data_loaded
4381
4376
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: protoprimer
3
- Version: 0.12.0.dev2
3
+ Version: 0.12.1.dev0
4
4
  Summary: Escape the fragile mess of pre-venv shell scripts with a pure Python bootstrap wrapper: 🚀 ⏩ single-touch, zero-args, self-contained, no-deps, cross-platform, testable init logic using standard tools to run apps in a custom environment isolated per repository
5
5
  Author-email: uvsmtid <uvsmtid@gmail.com>
6
6
  License: MIT
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
5
5
 
6
6
  [project]
7
7
  name = "protoprimer"
8
- version = "0.12.0.dev2"
8
+ version = "0.12.1.dev0"
9
9
 
10
10
  authors = [
11
11
  { name = "uvsmtid", email = "uvsmtid@gmail.com" },