cfinterface 1.8.0__tar.gz → 1.8.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.
Files changed (117) hide show
  1. {cfinterface-1.8.0 → cfinterface-1.8.2}/.github/workflows/docs.yml +1 -1
  2. {cfinterface-1.8.0 → cfinterface-1.8.2}/.github/workflows/publish.yml +1 -1
  3. {cfinterface-1.8.0 → cfinterface-1.8.2}/PKG-INFO +3 -2
  4. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/__init__.py +1 -1
  5. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/components/floatfield.py +13 -2
  6. {cfinterface-1.8.0 → cfinterface-1.8.2}/.github/workflows/main.yml +0 -0
  7. {cfinterface-1.8.0 → cfinterface-1.8.2}/.gitignore +0 -0
  8. {cfinterface-1.8.0 → cfinterface-1.8.2}/LICENSE +0 -0
  9. {cfinterface-1.8.0 → cfinterface-1.8.2}/README.md +0 -0
  10. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/_utils/__init__.py +0 -0
  11. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/adapters/__init__.py +0 -0
  12. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/adapters/components/__init__.py +0 -0
  13. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/adapters/components/line/__init__.py +0 -0
  14. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/adapters/components/line/repository.py +0 -0
  15. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/adapters/components/repository.py +0 -0
  16. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/adapters/reading/__init__.py +0 -0
  17. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/adapters/reading/repository.py +0 -0
  18. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/adapters/writing/__init__.py +0 -0
  19. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/adapters/writing/repository.py +0 -0
  20. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/components/__init__.py +0 -0
  21. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/components/block.py +0 -0
  22. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/components/datetimefield.py +0 -0
  23. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/components/defaultblock.py +0 -0
  24. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/components/defaultregister.py +0 -0
  25. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/components/defaultsection.py +0 -0
  26. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/components/field.py +0 -0
  27. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/components/integerfield.py +0 -0
  28. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/components/line.py +0 -0
  29. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/components/literalfield.py +0 -0
  30. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/components/register.py +0 -0
  31. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/components/section.py +0 -0
  32. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/data/__init__.py +0 -0
  33. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/data/blockdata.py +0 -0
  34. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/data/registerdata.py +0 -0
  35. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/data/sectiondata.py +0 -0
  36. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/files/__init__.py +0 -0
  37. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/files/blockfile.py +0 -0
  38. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/files/registerfile.py +0 -0
  39. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/files/sectionfile.py +0 -0
  40. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/py.typed +0 -0
  41. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/reading/__init__.py +0 -0
  42. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/reading/blockreading.py +0 -0
  43. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/reading/registerreading.py +0 -0
  44. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/reading/sectionreading.py +0 -0
  45. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/writing/__init__.py +0 -0
  46. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/writing/blockwriting.py +0 -0
  47. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/writing/registerwriting.py +0 -0
  48. {cfinterface-1.8.0 → cfinterface-1.8.2}/cfinterface/writing/sectionwriting.py +0 -0
  49. {cfinterface-1.8.0 → cfinterface-1.8.2}/docs/source/conf.py +0 -0
  50. {cfinterface-1.8.0 → cfinterface-1.8.2}/docs/source/getting_started/contributing.rst +0 -0
  51. {cfinterface-1.8.0 → cfinterface-1.8.2}/docs/source/getting_started/tutorial.rst +0 -0
  52. {cfinterface-1.8.0 → cfinterface-1.8.2}/docs/source/index.rst +0 -0
  53. {cfinterface-1.8.0 → cfinterface-1.8.2}/docs/source/install/install.rst +0 -0
  54. {cfinterface-1.8.0 → cfinterface-1.8.2}/docs/source/reference/blocks/files/block.rst +0 -0
  55. {cfinterface-1.8.0 → cfinterface-1.8.2}/docs/source/reference/blocks/files/blockdata.rst +0 -0
  56. {cfinterface-1.8.0 → cfinterface-1.8.2}/docs/source/reference/blocks/files/blockfile.rst +0 -0
  57. {cfinterface-1.8.0 → cfinterface-1.8.2}/docs/source/reference/blocks/index.rst +0 -0
  58. {cfinterface-1.8.0 → cfinterface-1.8.2}/docs/source/reference/fields/components/datetimefield.rst +0 -0
  59. {cfinterface-1.8.0 → cfinterface-1.8.2}/docs/source/reference/fields/components/field.rst +0 -0
  60. {cfinterface-1.8.0 → cfinterface-1.8.2}/docs/source/reference/fields/components/floatfield.rst +0 -0
  61. {cfinterface-1.8.0 → cfinterface-1.8.2}/docs/source/reference/fields/components/integerfield.rst +0 -0
  62. {cfinterface-1.8.0 → cfinterface-1.8.2}/docs/source/reference/fields/components/literalfield.rst +0 -0
  63. {cfinterface-1.8.0 → cfinterface-1.8.2}/docs/source/reference/fields/index.rst +0 -0
  64. {cfinterface-1.8.0 → cfinterface-1.8.2}/docs/source/reference/line/index.rst +0 -0
  65. {cfinterface-1.8.0 → cfinterface-1.8.2}/docs/source/reference/registers/files/register.rst +0 -0
  66. {cfinterface-1.8.0 → cfinterface-1.8.2}/docs/source/reference/registers/files/registerdata.rst +0 -0
  67. {cfinterface-1.8.0 → cfinterface-1.8.2}/docs/source/reference/registers/files/registerfile.rst +0 -0
  68. {cfinterface-1.8.0 → cfinterface-1.8.2}/docs/source/reference/registers/index.rst +0 -0
  69. {cfinterface-1.8.0 → cfinterface-1.8.2}/docs/source/reference/sections/files/section.rst +0 -0
  70. {cfinterface-1.8.0 → cfinterface-1.8.2}/docs/source/reference/sections/files/sectiondata.rst +0 -0
  71. {cfinterface-1.8.0 → cfinterface-1.8.2}/docs/source/reference/sections/files/sectionfile.rst +0 -0
  72. {cfinterface-1.8.0 → cfinterface-1.8.2}/docs/source/reference/sections/index.rst +0 -0
  73. {cfinterface-1.8.0 → cfinterface-1.8.2}/examples/README.rst +0 -0
  74. {cfinterface-1.8.0 → cfinterface-1.8.2}/examples/__init__.py +0 -0
  75. {cfinterface-1.8.0 → cfinterface-1.8.2}/pyproject.toml +0 -0
  76. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/__init__.py +0 -0
  77. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/adapters/__init__.py +0 -0
  78. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/adapters/components/__init__.py +0 -0
  79. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/adapters/components/test_blockrepository.py +0 -0
  80. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/adapters/components/test_linerepository.py +0 -0
  81. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/adapters/components/test_registerrepository.py +0 -0
  82. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/adapters/components/test_sectionrepository.py +0 -0
  83. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/adapters/reading/__init__.py +0 -0
  84. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/adapters/reading/test_readingrepository.py +0 -0
  85. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/adapters/writing/__init__.py +0 -0
  86. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/adapters/writing/test_writingrepository.py +0 -0
  87. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/components/__init__.py +0 -0
  88. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/components/test_block.py +0 -0
  89. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/components/test_datetimefield.py +0 -0
  90. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/components/test_defaultblock.py +0 -0
  91. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/components/test_defaultregister.py +0 -0
  92. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/components/test_defaultsection.py +0 -0
  93. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/components/test_field.py +0 -0
  94. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/components/test_floatfield.py +0 -0
  95. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/components/test_integerfield.py +0 -0
  96. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/components/test_line.py +0 -0
  97. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/components/test_literalfield.py +0 -0
  98. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/components/test_register.py +0 -0
  99. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/components/test_section.py +0 -0
  100. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/data/__init__.py +0 -0
  101. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/data/test_blockdata.py +0 -0
  102. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/data/test_registerdata.py +0 -0
  103. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/data/test_sectiondata.py +0 -0
  104. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/files/__init__.py +0 -0
  105. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/files/test_blockfile.py +0 -0
  106. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/files/test_registerfile.py +0 -0
  107. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/files/test_sectionfile.py +0 -0
  108. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/mocks/__init__.py +0 -0
  109. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/mocks/mock_open.py +0 -0
  110. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/reading/__init__.py +0 -0
  111. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/reading/test_blockreading.py +0 -0
  112. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/reading/test_registerreading.py +0 -0
  113. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/reading/test_sectionreading.py +0 -0
  114. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/writing/__init__.py +0 -0
  115. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/writing/test_blockwriting.py +0 -0
  116. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/writing/test_registerwriting.py +0 -0
  117. {cfinterface-1.8.0 → cfinterface-1.8.2}/tests/writing/test_sectionwriting.py +0 -0
@@ -13,7 +13,7 @@ jobs:
13
13
  - name: Install uv
14
14
  uses: astral-sh/setup-uv@v3
15
15
  - name: Set up Python
16
- run: uv python install
16
+ run: uv python install 3.12
17
17
  - name: Install the project
18
18
  run: |
19
19
  uv sync --all-extras --dev
@@ -17,7 +17,7 @@ jobs:
17
17
  - name: Install uv
18
18
  uses: astral-sh/setup-uv@v3
19
19
  - name: Set up Python
20
- run: uv python install
20
+ run: uv python install 3.12
21
21
  - name: Install the project
22
22
  run: |
23
23
  uv sync --all-extras --dev
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: cfinterface
3
- Version: 1.8.0
3
+ Version: 1.8.2
4
4
  Summary: Interface for handling custom formatted files
5
5
  Project-URL: Documentation, https://rjmalves.github.io/cfinterface/
6
6
  Project-URL: Repository, https://github.com/rjmalves/cfinterface/
@@ -26,6 +26,7 @@ License: MIT License
26
26
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
27
27
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
28
28
  SOFTWARE.
29
+ License-File: LICENSE
29
30
  Classifier: Development Status :: 4 - Beta
30
31
  Classifier: Intended Audience :: Developers
31
32
  Classifier: License :: OSI Approved :: MIT License
@@ -6,7 +6,7 @@ cfi is a Python module for handling custom formatted files
6
6
  and provide reading, storing and writing utilities.
7
7
  """
8
8
 
9
- __version__ = "1.8.0"
9
+ __version__ = "1.8.2"
10
10
 
11
11
  from . import components # noqa
12
12
  from . import data # noqa
@@ -9,7 +9,7 @@ class FloatField(Field):
9
9
  """
10
10
  Class for representing an float field for being read from and
11
11
  written to a file. The format to read and write the value is given
12
- by 'F' for fixed point notation and 'E' for scientific notation.
12
+ by 'F' for fixed point notation and 'E' or 'D' for scientific notation.
13
13
  """
14
14
 
15
15
  __slots__ = ["__decimal_digits", "__format", "__sep", "__type"]
@@ -54,7 +54,7 @@ class FloatField(Field):
54
54
  return float(
55
55
  line[self._starting_position : self._ending_position].replace(
56
56
  self.__sep, "."
57
- )
57
+ ).replace("D", "E").replace("d", "e")
58
58
  )
59
59
 
60
60
  # Override
@@ -79,6 +79,17 @@ class FloatField(Field):
79
79
  format=self.__format,
80
80
  )
81
81
  value = value[: self.size]
82
+ elif self.__format.lower() == "d" and self.value != 0:
83
+ value = "{:.{d}{format}}".format(
84
+ round(
85
+ self.value,
86
+ self.__decimal_digits
87
+ - int(floor(log10(abs(self.value)))),
88
+ ),
89
+ d=self.__decimal_digits,
90
+ format="E",
91
+ ).replace("E", "D")
92
+ value = value[: self.size]
82
93
  else:
83
94
  for d in range(self.__decimal_digits, -1, -1):
84
95
  value = "{:.{d}{format}}".format(
File without changes
File without changes
File without changes
File without changes