nshtrainer 0.16.1__tar.gz → 0.17.1__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.
Files changed (89) hide show
  1. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/PKG-INFO +1 -1
  2. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/pyproject.toml +1 -1
  3. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/_checkpoint/metadata.py +14 -12
  4. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/util/_environment_info.py +6 -6
  5. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/README.md +0 -0
  6. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/__init__.py +0 -0
  7. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/_checkpoint/loader.py +0 -0
  8. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/_checkpoint/saver.py +0 -0
  9. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/_experimental/__init__.py +0 -0
  10. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/callbacks/__init__.py +0 -0
  11. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/callbacks/_throughput_monitor_callback.py +0 -0
  12. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/callbacks/actsave.py +0 -0
  13. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/callbacks/base.py +0 -0
  14. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/callbacks/checkpoint/__init__.py +0 -0
  15. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/callbacks/checkpoint/_base.py +0 -0
  16. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/callbacks/checkpoint/best_checkpoint.py +0 -0
  17. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/callbacks/checkpoint/last_checkpoint.py +0 -0
  18. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/callbacks/checkpoint/on_exception_checkpoint.py +0 -0
  19. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/callbacks/early_stopping.py +0 -0
  20. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/callbacks/ema.py +0 -0
  21. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/callbacks/finite_checks.py +0 -0
  22. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/callbacks/gradient_skipping.py +0 -0
  23. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/callbacks/interval.py +0 -0
  24. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/callbacks/log_epoch.py +0 -0
  25. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/callbacks/norm_logging.py +0 -0
  26. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/callbacks/print_table.py +0 -0
  27. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/callbacks/throughput_monitor.py +0 -0
  28. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/callbacks/timer.py +0 -0
  29. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/callbacks/wandb_watch.py +0 -0
  30. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/data/__init__.py +0 -0
  31. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/data/balanced_batch_sampler.py +0 -0
  32. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/data/transform.py +0 -0
  33. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/ll/__init__.py +0 -0
  34. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/ll/_experimental.py +0 -0
  35. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/ll/actsave.py +0 -0
  36. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/ll/callbacks.py +0 -0
  37. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/ll/config.py +0 -0
  38. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/ll/data.py +0 -0
  39. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/ll/log.py +0 -0
  40. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/ll/lr_scheduler.py +0 -0
  41. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/ll/model.py +0 -0
  42. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/ll/nn.py +0 -0
  43. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/ll/optimizer.py +0 -0
  44. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/ll/runner.py +0 -0
  45. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/ll/snapshot.py +0 -0
  46. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/ll/snoop.py +0 -0
  47. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/ll/trainer.py +0 -0
  48. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/ll/typecheck.py +0 -0
  49. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/ll/util.py +0 -0
  50. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/loggers/__init__.py +0 -0
  51. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/loggers/_base.py +0 -0
  52. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/loggers/csv.py +0 -0
  53. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/loggers/tensorboard.py +0 -0
  54. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/loggers/wandb.py +0 -0
  55. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/lr_scheduler/__init__.py +0 -0
  56. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/lr_scheduler/_base.py +0 -0
  57. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/lr_scheduler/linear_warmup_cosine.py +0 -0
  58. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/lr_scheduler/reduce_lr_on_plateau.py +0 -0
  59. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/metrics/__init__.py +0 -0
  60. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/metrics/_config.py +0 -0
  61. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/model/__init__.py +0 -0
  62. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/model/base.py +0 -0
  63. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/model/config.py +0 -0
  64. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/model/modules/callback.py +0 -0
  65. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/model/modules/debug.py +0 -0
  66. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/model/modules/distributed.py +0 -0
  67. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/model/modules/logger.py +0 -0
  68. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/model/modules/profiler.py +0 -0
  69. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/model/modules/rlp_sanity_checks.py +0 -0
  70. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/model/modules/shared_parameters.py +0 -0
  71. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/nn/__init__.py +0 -0
  72. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/nn/mlp.py +0 -0
  73. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/nn/module_dict.py +0 -0
  74. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/nn/module_list.py +0 -0
  75. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/nn/nonlinearity.py +0 -0
  76. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/optimizer.py +0 -0
  77. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/runner.py +0 -0
  78. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/scripts/find_packages.py +0 -0
  79. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/trainer/__init__.py +0 -0
  80. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/trainer/_runtime_callback.py +0 -0
  81. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/trainer/checkpoint_connector.py +0 -0
  82. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/trainer/signal_connector.py +0 -0
  83. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/trainer/trainer.py +0 -0
  84. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/util/_useful_types.py +0 -0
  85. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/util/environment.py +0 -0
  86. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/util/seed.py +0 -0
  87. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/util/slurm.py +0 -0
  88. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/util/typed.py +0 -0
  89. {nshtrainer-0.16.1 → nshtrainer-0.17.1}/src/nshtrainer/util/typing_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nshtrainer
3
- Version: 0.16.1
3
+ Version: 0.17.1
4
4
  Summary:
5
5
  Author: Nima Shoghi
6
6
  Author-email: nimashoghi@gmail.com
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "nshtrainer"
3
- version = "0.16.1"
3
+ version = "0.17.1"
4
4
  description = ""
5
5
  authors = ["Nima Shoghi <nimashoghi@gmail.com>"]
6
6
  readme = "README.md"
@@ -10,6 +10,8 @@ import nshconfig as C
10
10
  import numpy as np
11
11
  import torch
12
12
 
13
+ from ..util._environment_info import EnvironmentConfig
14
+
13
15
  if TYPE_CHECKING:
14
16
  from ..model import BaseConfig, LightningModuleBase
15
17
  from ..trainer.trainer import Trainer
@@ -36,13 +38,13 @@ class CheckpointMetadata(C.Config):
36
38
  global_step: int
37
39
  training_time: datetime.timedelta
38
40
  metrics: dict[str, Any]
39
- environment: dict[str, Any]
41
+ environment: EnvironmentConfig
40
42
 
41
- hparams: dict[str, Any] | None
43
+ hparams: Any
42
44
 
43
45
  @classmethod
44
46
  def from_file(cls, path: Path):
45
- return cls.model_validate_json(path.read_text())
47
+ return cls.model_validate_json(path.read_text(encoding="utf-8"))
46
48
 
47
49
  @classmethod
48
50
  def from_ckpt_path(cls, checkpoint_path: Path):
@@ -89,8 +91,8 @@ def _generate_checkpoint_metadata(
89
91
  global_step=trainer.global_step,
90
92
  training_time=training_time,
91
93
  metrics=metrics,
92
- environment=config.environment.model_dump(mode="json"),
93
- hparams=config.model_dump(mode="json"),
94
+ environment=config.environment,
95
+ hparams=config.model_dump(),
94
96
  )
95
97
 
96
98
 
@@ -107,9 +109,9 @@ def _write_checkpoint_metadata(
107
109
 
108
110
  # Write the metadata to the checkpoint directory
109
111
  try:
110
- metadata_path.write_text(metadata.model_dump_json(indent=4))
111
- except Exception as e:
112
- log.warning(f"Failed to write metadata to {checkpoint_path}: {e}")
112
+ metadata_path.write_text(metadata.model_dump_json(indent=4), encoding="utf-8")
113
+ except Exception:
114
+ log.exception(f"Failed to write metadata to {checkpoint_path}")
113
115
  else:
114
116
  log.debug(f"Checkpoint metadata written to {checkpoint_path}")
115
117
 
@@ -118,8 +120,8 @@ def _remove_checkpoint_metadata(checkpoint_path: Path):
118
120
  path = checkpoint_path.with_suffix(CheckpointMetadata.PATH_SUFFIX)
119
121
  try:
120
122
  path.unlink(missing_ok=True)
121
- except Exception as e:
122
- log.warning(f"Failed to remove {path}: {e}")
123
+ except Exception:
124
+ log.exception(f"Failed to remove {path}")
123
125
  else:
124
126
  log.debug(f"Removed {path}")
125
127
 
@@ -142,8 +144,8 @@ def _link_checkpoint_metadata(checkpoint_path: Path, linked_checkpoint_path: Pat
142
144
  # on Windows, special permissions are required to create symbolic links as a regular user
143
145
  # fall back to copying the file
144
146
  shutil.copy(path, linked_path)
145
- except Exception as e:
146
- log.warning(f"Failed to link {path} to {linked_path}: {e}")
147
+ except Exception:
148
+ log.exception(f"Failed to link {path} to {linked_path}")
147
149
  else:
148
150
  log.debug(f"Linked {path} to {linked_path}")
149
151
 
@@ -429,12 +429,12 @@ class EnvironmentPackageConfig(C.Config):
429
429
  version=clean_version,
430
430
  path=Path(str(f)) if (f := dist.locate_file("")) else None,
431
431
  summary=metadata["Summary"] if "Summary" in metadata else None,
432
- author=metadata["Author"] if "Summary" in metadata else None,
433
- license=metadata["License"] if "Summary" in metadata else None,
432
+ author=metadata["Author"] if "Author" in metadata else None,
433
+ license=metadata["License"] if "License" in metadata else None,
434
434
  requires=requires,
435
435
  )
436
- except Exception as e:
437
- log.warning(f"Error processing package {dist.name}: {str(e)}")
436
+ except Exception:
437
+ log.exception(f"Error processing package {dist.name}")
438
438
 
439
439
  except ImportError:
440
440
  log.warning(
@@ -672,8 +672,8 @@ class GitRepositoryConfig(C.Config):
672
672
  draft.is_dirty = repo.is_dirty()
673
673
  except git.InvalidGitRepositoryError:
674
674
  draft.is_git_repo = False
675
- except Exception as e:
676
- log.warning(f"Failed to get Git repository information: {e}")
675
+ except Exception:
676
+ log.exception("Failed to get Git repository information")
677
677
  draft.is_git_repo = None
678
678
 
679
679
  return draft.finalize()
File without changes