librelane 2.4.1__tar.gz → 2.4.2__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.

Potentially problematic release.


This version of librelane might be problematic. Click here for more details.

Files changed (169) hide show
  1. {librelane-2.4.1 → librelane-2.4.2}/PKG-INFO +1 -1
  2. {librelane-2.4.1 → librelane-2.4.2}/librelane/config/flow.py +2 -2
  3. {librelane-2.4.1 → librelane-2.4.2}/librelane/flows/cli.py +15 -12
  4. {librelane-2.4.1 → librelane-2.4.2}/librelane/flows/flow.py +6 -2
  5. {librelane-2.4.1 → librelane-2.4.2}/librelane/steps/step.py +2 -1
  6. {librelane-2.4.1 → librelane-2.4.2}/pyproject.toml +1 -1
  7. {librelane-2.4.1 → librelane-2.4.2}/Readme.md +0 -0
  8. {librelane-2.4.1 → librelane-2.4.2}/librelane/__init__.py +0 -0
  9. {librelane-2.4.1 → librelane-2.4.2}/librelane/__main__.py +0 -0
  10. {librelane-2.4.1 → librelane-2.4.2}/librelane/__version__.py +0 -0
  11. {librelane-2.4.1 → librelane-2.4.2}/librelane/common/__init__.py +0 -0
  12. {librelane-2.4.1 → librelane-2.4.2}/librelane/common/cli.py +0 -0
  13. {librelane-2.4.1 → librelane-2.4.2}/librelane/common/drc.py +0 -0
  14. {librelane-2.4.1 → librelane-2.4.2}/librelane/common/generic_dict.py +0 -0
  15. {librelane-2.4.1 → librelane-2.4.2}/librelane/common/metrics/__init__.py +0 -0
  16. {librelane-2.4.1 → librelane-2.4.2}/librelane/common/metrics/__main__.py +0 -0
  17. {librelane-2.4.1 → librelane-2.4.2}/librelane/common/metrics/library.py +0 -0
  18. {librelane-2.4.1 → librelane-2.4.2}/librelane/common/metrics/metric.py +0 -0
  19. {librelane-2.4.1 → librelane-2.4.2}/librelane/common/metrics/util.py +0 -0
  20. {librelane-2.4.1 → librelane-2.4.2}/librelane/common/misc.py +0 -0
  21. {librelane-2.4.1 → librelane-2.4.2}/librelane/common/ring_buffer.py +0 -0
  22. {librelane-2.4.1 → librelane-2.4.2}/librelane/common/tcl.py +0 -0
  23. {librelane-2.4.1 → librelane-2.4.2}/librelane/common/toolbox.py +0 -0
  24. {librelane-2.4.1 → librelane-2.4.2}/librelane/common/tpe.py +0 -0
  25. {librelane-2.4.1 → librelane-2.4.2}/librelane/common/types.py +0 -0
  26. {librelane-2.4.1 → librelane-2.4.2}/librelane/config/__init__.py +0 -0
  27. {librelane-2.4.1 → librelane-2.4.2}/librelane/config/__main__.py +0 -0
  28. {librelane-2.4.1 → librelane-2.4.2}/librelane/config/config.py +0 -0
  29. {librelane-2.4.1 → librelane-2.4.2}/librelane/config/pdk_compat.py +0 -0
  30. {librelane-2.4.1 → librelane-2.4.2}/librelane/config/preprocessor.py +0 -0
  31. {librelane-2.4.1 → librelane-2.4.2}/librelane/config/removals.py +0 -0
  32. {librelane-2.4.1 → librelane-2.4.2}/librelane/config/variable.py +0 -0
  33. {librelane-2.4.1 → librelane-2.4.2}/librelane/container.py +0 -0
  34. {librelane-2.4.1 → librelane-2.4.2}/librelane/env_info.py +0 -0
  35. {librelane-2.4.1 → librelane-2.4.2}/librelane/examples/spm/config.yaml +0 -0
  36. {librelane-2.4.1 → librelane-2.4.2}/librelane/examples/spm/pin_order.cfg +0 -0
  37. {librelane-2.4.1 → librelane-2.4.2}/librelane/examples/spm/src/impl.sdc +0 -0
  38. {librelane-2.4.1 → librelane-2.4.2}/librelane/examples/spm/src/signoff.sdc +0 -0
  39. {librelane-2.4.1 → librelane-2.4.2}/librelane/examples/spm/src/spm.v +0 -0
  40. {librelane-2.4.1 → librelane-2.4.2}/librelane/examples/spm/verify/spm_tb.v +0 -0
  41. {librelane-2.4.1 → librelane-2.4.2}/librelane/examples/spm-user_project_wrapper/SPM_example.v +0 -0
  42. {librelane-2.4.1 → librelane-2.4.2}/librelane/examples/spm-user_project_wrapper/base_sdc_file.sdc +0 -0
  43. {librelane-2.4.1 → librelane-2.4.2}/librelane/examples/spm-user_project_wrapper/config-tut.json +0 -0
  44. {librelane-2.4.1 → librelane-2.4.2}/librelane/examples/spm-user_project_wrapper/config.json +0 -0
  45. {librelane-2.4.1 → librelane-2.4.2}/librelane/examples/spm-user_project_wrapper/defines.v +0 -0
  46. {librelane-2.4.1 → librelane-2.4.2}/librelane/examples/spm-user_project_wrapper/template.def +0 -0
  47. {librelane-2.4.1 → librelane-2.4.2}/librelane/examples/spm-user_project_wrapper/user_project_wrapper.v +0 -0
  48. {librelane-2.4.1 → librelane-2.4.2}/librelane/flows/__init__.py +0 -0
  49. {librelane-2.4.1 → librelane-2.4.2}/librelane/flows/builtins.py +0 -0
  50. {librelane-2.4.1 → librelane-2.4.2}/librelane/flows/classic.py +0 -0
  51. {librelane-2.4.1 → librelane-2.4.2}/librelane/flows/misc.py +0 -0
  52. {librelane-2.4.1 → librelane-2.4.2}/librelane/flows/optimizing.py +0 -0
  53. {librelane-2.4.1 → librelane-2.4.2}/librelane/flows/sequential.py +0 -0
  54. {librelane-2.4.1 → librelane-2.4.2}/librelane/flows/synth_explore.py +0 -0
  55. {librelane-2.4.1 → librelane-2.4.2}/librelane/help/__main__.py +0 -0
  56. {librelane-2.4.1 → librelane-2.4.2}/librelane/logging/__init__.py +0 -0
  57. {librelane-2.4.1 → librelane-2.4.2}/librelane/logging/logger.py +0 -0
  58. {librelane-2.4.1 → librelane-2.4.2}/librelane/open_pdks_rev +0 -0
  59. {librelane-2.4.1 → librelane-2.4.2}/librelane/plugins.py +0 -0
  60. {librelane-2.4.1 → librelane-2.4.2}/librelane/py.typed +0 -0
  61. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/base.sdc +0 -0
  62. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/klayout/Readme.md +0 -0
  63. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/klayout/open_design.py +0 -0
  64. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/klayout/render.py +0 -0
  65. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/klayout/stream_out.py +0 -0
  66. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/klayout/xml_drc_report_to_json.py +0 -0
  67. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/klayout/xor.drc +0 -0
  68. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/magic/Readme.md +0 -0
  69. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/magic/common/read.tcl +0 -0
  70. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/magic/def/antenna_check.tcl +0 -0
  71. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/magic/def/mag.tcl +0 -0
  72. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/magic/def/mag_gds.tcl +0 -0
  73. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/magic/drc.tcl +0 -0
  74. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/magic/extract_spice.tcl +0 -0
  75. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/magic/gds/drc_batch.tcl +0 -0
  76. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/magic/gds/erase_box.tcl +0 -0
  77. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/magic/gds/extras_mag.tcl +0 -0
  78. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/magic/gds/mag_with_pointers.tcl +0 -0
  79. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/magic/get_bbox.tcl +0 -0
  80. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/magic/lef/extras_maglef.tcl +0 -0
  81. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/magic/lef/maglef.tcl +0 -0
  82. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/magic/lef.tcl +0 -0
  83. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/magic/open.tcl +0 -0
  84. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/magic/wrapper.tcl +0 -0
  85. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/netgen/setup.tcl +0 -0
  86. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/odbpy/apply_def_template.py +0 -0
  87. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/odbpy/cell_frequency.py +0 -0
  88. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/odbpy/check_antenna_properties.py +0 -0
  89. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/odbpy/contextualize.py +0 -0
  90. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/odbpy/defutil.py +0 -0
  91. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/odbpy/diodes.py +0 -0
  92. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/odbpy/disconnected_pins.py +0 -0
  93. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/odbpy/eco_buffer.py +0 -0
  94. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/odbpy/eco_diode.py +0 -0
  95. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/odbpy/filter_unannotated.py +0 -0
  96. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/odbpy/io_place.py +0 -0
  97. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/odbpy/ioplace_parser/__init__.py +0 -0
  98. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/odbpy/ioplace_parser/parse.py +0 -0
  99. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/odbpy/label_macro_pins.py +0 -0
  100. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/odbpy/lefutil.py +0 -0
  101. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/odbpy/placers.py +0 -0
  102. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/odbpy/power_utils.py +0 -0
  103. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/odbpy/random_place.py +0 -0
  104. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/odbpy/reader.py +0 -0
  105. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/odbpy/remove_buffers.py +0 -0
  106. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/odbpy/snap_to_grid.py +0 -0
  107. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/odbpy/wire_lengths.py +0 -0
  108. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/openroad/antenna_check.tcl +0 -0
  109. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/openroad/antenna_repair.tcl +0 -0
  110. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/openroad/basic_mp.tcl +0 -0
  111. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/openroad/buffer_list.tcl +0 -0
  112. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/openroad/common/dpl.tcl +0 -0
  113. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/openroad/common/dpl_cell_pad.tcl +0 -0
  114. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/openroad/common/grt.tcl +0 -0
  115. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/openroad/common/io.tcl +0 -0
  116. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/openroad/common/pdn_cfg.tcl +0 -0
  117. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/openroad/common/resizer.tcl +0 -0
  118. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/openroad/common/set_global_connections.tcl +0 -0
  119. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/openroad/common/set_layer_adjustments.tcl +0 -0
  120. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/openroad/common/set_power_nets.tcl +0 -0
  121. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/openroad/common/set_rc.tcl +0 -0
  122. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/openroad/common/set_routing_layers.tcl +0 -0
  123. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/openroad/cts.tcl +0 -0
  124. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/openroad/cut_rows.tcl +0 -0
  125. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/openroad/dpl.tcl +0 -0
  126. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/openroad/drt.tcl +0 -0
  127. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/openroad/fill.tcl +0 -0
  128. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/openroad/floorplan.tcl +0 -0
  129. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/openroad/gpl.tcl +0 -0
  130. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/openroad/grt.tcl +0 -0
  131. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/openroad/gui.tcl +0 -0
  132. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/openroad/insert_buffer.tcl +0 -0
  133. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/openroad/ioplacer.tcl +0 -0
  134. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/openroad/irdrop.tcl +0 -0
  135. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/openroad/pdn.tcl +0 -0
  136. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/openroad/rcx.tcl +0 -0
  137. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/openroad/repair_design.tcl +0 -0
  138. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/openroad/repair_design_postgrt.tcl +0 -0
  139. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/openroad/rsz_timing_postcts.tcl +0 -0
  140. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/openroad/rsz_timing_postgrt.tcl +0 -0
  141. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/openroad/sta/check_macro_instances.tcl +0 -0
  142. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/openroad/sta/corner.tcl +0 -0
  143. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/openroad/tapcell.tcl +0 -0
  144. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/openroad/write_views.tcl +0 -0
  145. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/pyosys/construct_abc_script.py +0 -0
  146. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/pyosys/json_header.py +0 -0
  147. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/pyosys/synthesize.py +0 -0
  148. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/pyosys/ys_common.py +0 -0
  149. {librelane-2.4.1 → librelane-2.4.2}/librelane/scripts/tclsh/hello.tcl +0 -0
  150. {librelane-2.4.1 → librelane-2.4.2}/librelane/state/__init__.py +0 -0
  151. {librelane-2.4.1 → librelane-2.4.2}/librelane/state/__main__.py +0 -0
  152. {librelane-2.4.1 → librelane-2.4.2}/librelane/state/design_format.py +0 -0
  153. {librelane-2.4.1 → librelane-2.4.2}/librelane/state/state.py +0 -0
  154. {librelane-2.4.1 → librelane-2.4.2}/librelane/steps/__init__.py +0 -0
  155. {librelane-2.4.1 → librelane-2.4.2}/librelane/steps/__main__.py +0 -0
  156. {librelane-2.4.1 → librelane-2.4.2}/librelane/steps/checker.py +0 -0
  157. {librelane-2.4.1 → librelane-2.4.2}/librelane/steps/common_variables.py +0 -0
  158. {librelane-2.4.1 → librelane-2.4.2}/librelane/steps/cvc_rv.py +0 -0
  159. {librelane-2.4.1 → librelane-2.4.2}/librelane/steps/klayout.py +0 -0
  160. {librelane-2.4.1 → librelane-2.4.2}/librelane/steps/magic.py +0 -0
  161. {librelane-2.4.1 → librelane-2.4.2}/librelane/steps/misc.py +0 -0
  162. {librelane-2.4.1 → librelane-2.4.2}/librelane/steps/netgen.py +0 -0
  163. {librelane-2.4.1 → librelane-2.4.2}/librelane/steps/odb.py +0 -0
  164. {librelane-2.4.1 → librelane-2.4.2}/librelane/steps/openroad.py +0 -0
  165. {librelane-2.4.1 → librelane-2.4.2}/librelane/steps/openroad_alerts.py +0 -0
  166. {librelane-2.4.1 → librelane-2.4.2}/librelane/steps/pyosys.py +0 -0
  167. {librelane-2.4.1 → librelane-2.4.2}/librelane/steps/tclstep.py +0 -0
  168. {librelane-2.4.1 → librelane-2.4.2}/librelane/steps/verilator.py +0 -0
  169. {librelane-2.4.1 → librelane-2.4.2}/librelane/steps/yosys.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: librelane
3
- Version: 2.4.1
3
+ Version: 2.4.2
4
4
  Summary: An infrastructure for implementing chip design flows
5
5
  Home-page: https://github.com/librelane/librelane
6
6
  License: Apache-2.0
@@ -153,13 +153,13 @@ pdk_variables = [
153
153
  Variable(
154
154
  "FP_IO_HLAYER",
155
155
  str,
156
- "The metal layer on which to place horizontal IO pins, i.e., the top and bottom of the die.",
156
+ "The metal layer on which to place horizontally-aligned (long side parallel with the horizon) pins alongside the east and west edges of the die.",
157
157
  pdk=True,
158
158
  ),
159
159
  Variable(
160
160
  "FP_IO_VLAYER",
161
161
  str,
162
- "The metal layer on which to place vertical IO pins, i.e., the top and bottom of the die.",
162
+ "The metal layer on which to place vertically-aligned (long side perpendicular to the horizon) pins alongside the north and south edges of the die.",
163
163
  pdk=True,
164
164
  ),
165
165
  Variable("RT_MIN_LAYER", str, "The lowest metal layer to route on.", pdk=True),
@@ -146,27 +146,30 @@ def cloup_flow_opts(
146
146
  function decorated with @cloup.command (https://cloup.readthedocs.io/en/stable/autoapi/cloup/index.html#cloup.command).
147
147
 
148
148
  The following keyword arguments will be passed to the decorated function.
149
+
149
150
  * Those postfixed ‡ are compatible with the constructor for :class:`Flow`.
150
151
  * Those postfixed § are compatible with the :meth:`Flow.start`.
151
152
 
153
+ ---
154
+
152
155
  * Flow configuration options (if parameter ``config_options`` is ``True``):
153
156
  * ``flow_name``: ``Optional[str]``: A valid flow ID to be used with :meth:`Flow.factory.get`
154
- * ``config_override_strings``‡: ``Optional[Iterable[str]]``
157
+ * ``config_override_strings`` ‡: ``Optional[Iterable[str]]``
155
158
  * Sequential flow controls (if parameter ``sequential_flow_controls`` is ``True``)
156
- * ``frm``§: ``Optional[str]``: Start from a step with this ID. Supported by sequential flows.
157
- * ``to``§: ``Optional[str]``: Stop at a step with this id. Supported by sequential flows.
158
- * ``skip``§: ``Iterable[str]``: Skip these steps. Supported by sequential flows.
159
+ * ``frm`` §: ``Optional[str]``: Start from a step with this ID. Supported by sequential flows.
160
+ * ``to`` §: ``Optional[str]``: Stop at a step with this id. Supported by sequential flows.
161
+ * ``skip`` §: ``Iterable[str]``: Skip these steps. Supported by sequential flows.
159
162
  * Sequential flow reproducible (if parameter ``sequential_flow_reproducible`` is ``True``)
160
- * ``reproducible``§: ``str``: Create a reproducible for a step with is ID, aborting the flow afterwards. Supported by sequential flows.
163
+ * ``reproducible`` §: ``str``: Create a reproducible for a step with is ID, aborting the flow afterwards. Supported by sequential flows.
161
164
  * Flow run options (if parameter ``run_options`` is ``True``):
162
- * ``tag``§: ``Optional[str]``
163
- * ``last_run``§: ``bool``: If ``True``, ``tag`` is guaranteed to be None.
164
- * ``with_initial_state``§: ``Optional[State]``
165
+ * ``tag`` §: ``Optional[str]``
166
+ * ``last_run`` §: ``bool``: If ``True``, ``tag`` is guaranteed to be None.
167
+ * ``with_initial_state`` §: ``Optional[State]``
165
168
  * PDK options
166
- * ``use_volare``: ``bool``
167
- * ``pdk_root``‡: ``Optional[str]``
168
- * ``pdk``‡: ``str``
169
- * ``scl``‡: ``Optional[str]``
169
+ * ``use_volare`` : ``bool``
170
+ * ``pdk_root`` ‡: ``Optional[str]``
171
+ * ``pdk`` ‡: ``str``
172
+ * ``scl`` ‡: ``Optional[str]``
170
173
  * ``config_files``: ``Iterable[str]``: Paths to configuration files (if
171
174
  parameter ``accept_config_files`` is ``True``)
172
175
 
@@ -534,8 +534,11 @@ class Flow(ABC):
534
534
 
535
535
  :param with_initial_state: An optional initial state object to use.
536
536
  If not provided:
537
+
537
538
  * If resuming a previous run, the latest ``state_out.json`` (by filesystem modification date)
539
+
538
540
  * If not, an empty state object is created.
541
+
539
542
  :param tag: A name for this invocation of the flow. If not provided,
540
543
  one based on a date string will be created.
541
544
 
@@ -1002,8 +1005,9 @@ class Flow(ABC):
1002
1005
  A factory singleton for Flows, allowing Flow types to be registered and then
1003
1006
  retrieved by name.
1004
1007
 
1005
- See https://en.wikipedia.org/wiki/Factory_(object-oriented_programming) for
1006
- a primer.
1008
+ See
1009
+ `Factory (object-oriented programming) on Wikipedia <https://en.wikipedia.org/wiki/Factory_(object-oriented_programming)>`_
1010
+ for a primer.
1007
1011
  """
1008
1012
 
1009
1013
  __registry: ClassVar[Dict[str, Type[Flow]]] = {}
@@ -1440,7 +1440,8 @@ class Step(ABC):
1440
1440
  A factory singleton for Steps, allowing steps types to be registered and then
1441
1441
  retrieved by name.
1442
1442
 
1443
- See https://en.wikipedia.org/wiki/Factory_(object-oriented_programming) for
1443
+ See
1444
+ `Factory (object-oriented programming) on Wikipedia <https://en.wikipedia.org/wiki/Factory_(object-oriented_programming)>`_
1444
1445
  a primer.
1445
1446
  """
1446
1447
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "librelane"
3
- version = "2.4.1"
3
+ version = "2.4.2"
4
4
  description = "An infrastructure for implementing chip design flows"
5
5
  # Technically, maintainer. We cannot use the maintainers field until
6
6
  # poetry-core>=2.0.0 which requires Python version 3.9+. This field does
File without changes
File without changes