foamlib 1.1.0__tar.gz → 1.1.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 (273) hide show
  1. {foamlib-1.1.0 → foamlib-1.1.2}/.github/workflows/ci.yml +2 -2
  2. {foamlib-1.1.0 → foamlib-1.1.2}/.github/workflows/docker.yml +1 -1
  3. {foamlib-1.1.0 → foamlib-1.1.2}/PKG-INFO +1 -1
  4. {foamlib-1.1.0 → foamlib-1.1.2}/foamlib/__init__.py +1 -1
  5. {foamlib-1.1.0 → foamlib-1.1.2}/foamlib/_cases/_base.py +15 -6
  6. {foamlib-1.1.0 → foamlib-1.1.2}/foamlib/_files/_parsing.py +0 -4
  7. {foamlib-1.1.0 → foamlib-1.1.2}/foamlib/_files/_serialization.py +1 -1
  8. {foamlib-1.1.0 → foamlib-1.1.2}/pyproject.toml +2 -0
  9. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_cases/test_flange.py +2 -2
  10. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_cases/test_flange_async.py +4 -4
  11. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_files/test_dumps.py +6 -3
  12. {foamlib-1.1.0 → foamlib-1.1.2}/.devcontainer.json +0 -0
  13. {foamlib-1.1.0 → foamlib-1.1.2}/.dockerignore +0 -0
  14. {foamlib-1.1.0 → foamlib-1.1.2}/.git-blame-ignore-revs +0 -0
  15. {foamlib-1.1.0 → foamlib-1.1.2}/.github/dependabot.yml +0 -0
  16. {foamlib-1.1.0 → foamlib-1.1.2}/.github/workflows/dockerhub-description.yml +0 -0
  17. {foamlib-1.1.0 → foamlib-1.1.2}/.github/workflows/pypi-publish.yml +0 -0
  18. {foamlib-1.1.0 → foamlib-1.1.2}/.gitignore +0 -0
  19. {foamlib-1.1.0 → foamlib-1.1.2}/.readthedocs.yaml +0 -0
  20. {foamlib-1.1.0 → foamlib-1.1.2}/CITATION.cff +0 -0
  21. {foamlib-1.1.0 → foamlib-1.1.2}/CONTRIBUTING.md +0 -0
  22. {foamlib-1.1.0 → foamlib-1.1.2}/Dockerfile +0 -0
  23. {foamlib-1.1.0 → foamlib-1.1.2}/LICENSE.txt +0 -0
  24. {foamlib-1.1.0 → foamlib-1.1.2}/README.md +0 -0
  25. {foamlib-1.1.0 → foamlib-1.1.2}/benchmark/benchmark.png +0 -0
  26. {foamlib-1.1.0 → foamlib-1.1.2}/benchmark/benchmark.py +0 -0
  27. {foamlib-1.1.0 → foamlib-1.1.2}/benchmark/requirements.txt +0 -0
  28. {foamlib-1.1.0 → foamlib-1.1.2}/benchmark/ruff.toml +0 -0
  29. {foamlib-1.1.0 → foamlib-1.1.2}/docs/Makefile +0 -0
  30. {foamlib-1.1.0 → foamlib-1.1.2}/docs/cases.rst +0 -0
  31. {foamlib-1.1.0 → foamlib-1.1.2}/docs/conf.py +0 -0
  32. {foamlib-1.1.0 → foamlib-1.1.2}/docs/example.rst +0 -0
  33. {foamlib-1.1.0 → foamlib-1.1.2}/docs/files.rst +0 -0
  34. {foamlib-1.1.0 → foamlib-1.1.2}/docs/index.rst +0 -0
  35. {foamlib-1.1.0 → foamlib-1.1.2}/docs/make.bat +0 -0
  36. {foamlib-1.1.0 → foamlib-1.1.2}/docs/parametricstudy.rst +0 -0
  37. {foamlib-1.1.0 → foamlib-1.1.2}/docs/postprocessing.rst +0 -0
  38. {foamlib-1.1.0 → foamlib-1.1.2}/docs/ruff.toml +0 -0
  39. {foamlib-1.1.0 → foamlib-1.1.2}/example/parametricStudy/createStudyFromCSV.py +0 -0
  40. {foamlib-1.1.0 → foamlib-1.1.2}/example/parametricStudy/createStudyGrid.py +0 -0
  41. {foamlib-1.1.0 → foamlib-1.1.2}/example/parametricStudy/damBreak/0/T +0 -0
  42. {foamlib-1.1.0 → foamlib-1.1.2}/example/parametricStudy/damBreak/0/U +0 -0
  43. {foamlib-1.1.0 → foamlib-1.1.2}/example/parametricStudy/damBreak/0/alpha.water +0 -0
  44. {foamlib-1.1.0 → foamlib-1.1.2}/example/parametricStudy/damBreak/0/p +0 -0
  45. {foamlib-1.1.0 → foamlib-1.1.2}/example/parametricStudy/damBreak/0/p_rgh +0 -0
  46. {foamlib-1.1.0 → foamlib-1.1.2}/example/parametricStudy/damBreak/Allclean +0 -0
  47. {foamlib-1.1.0 → foamlib-1.1.2}/example/parametricStudy/damBreak/Allrun +0 -0
  48. {foamlib-1.1.0 → foamlib-1.1.2}/example/parametricStudy/damBreak/constant/g +0 -0
  49. {foamlib-1.1.0 → foamlib-1.1.2}/example/parametricStudy/damBreak/constant/thermophysicalProperties +0 -0
  50. {foamlib-1.1.0 → foamlib-1.1.2}/example/parametricStudy/damBreak/constant/thermophysicalProperties.air +0 -0
  51. {foamlib-1.1.0 → foamlib-1.1.2}/example/parametricStudy/damBreak/constant/thermophysicalProperties.water +0 -0
  52. {foamlib-1.1.0 → foamlib-1.1.2}/example/parametricStudy/damBreak/constant/transportProperties +0 -0
  53. {foamlib-1.1.0 → foamlib-1.1.2}/example/parametricStudy/damBreak/constant/turbulenceProperties +0 -0
  54. {foamlib-1.1.0 → foamlib-1.1.2}/example/parametricStudy/damBreak/damBreak.foam +0 -0
  55. {foamlib-1.1.0 → foamlib-1.1.2}/example/parametricStudy/damBreak/system/blockMeshDict +0 -0
  56. {foamlib-1.1.0 → foamlib-1.1.2}/example/parametricStudy/damBreak/system/controlDict +0 -0
  57. {foamlib-1.1.0 → foamlib-1.1.2}/example/parametricStudy/damBreak/system/decomposeParDict +0 -0
  58. {foamlib-1.1.0 → foamlib-1.1.2}/example/parametricStudy/damBreak/system/fvSchemes +0 -0
  59. {foamlib-1.1.0 → foamlib-1.1.2}/example/parametricStudy/damBreak/system/fvSolution +0 -0
  60. {foamlib-1.1.0 → foamlib-1.1.2}/example/parametricStudy/damBreak/system/setFieldsDict +0 -0
  61. {foamlib-1.1.0 → foamlib-1.1.2}/example/parametricStudy/damBreak/system/simulationParameters +0 -0
  62. {foamlib-1.1.0 → foamlib-1.1.2}/example/parametricStudy/gatherResults.py +0 -0
  63. {foamlib-1.1.0 → foamlib-1.1.2}/example/parametricStudy/parameter_study.json +0 -0
  64. {foamlib-1.1.0 → foamlib-1.1.2}/example/parametricStudy/parastudy.csv +0 -0
  65. {foamlib-1.1.0 → foamlib-1.1.2}/example/parametricStudy/plotResults.py +0 -0
  66. {foamlib-1.1.0 → foamlib-1.1.2}/example/parametricStudy/results/forces.csv +0 -0
  67. {foamlib-1.1.0 → foamlib-1.1.2}/example/parametricStudy/results/probe_u.csv +0 -0
  68. {foamlib-1.1.0 → foamlib-1.1.2}/example/parametricStudy/results/surface_heights.csv +0 -0
  69. {foamlib-1.1.0 → foamlib-1.1.2}/example/parametricStudy/runStudy.py +0 -0
  70. {foamlib-1.1.0 → foamlib-1.1.2}/foamlib/_cases/__init__.py +0 -0
  71. {foamlib-1.1.0 → foamlib-1.1.2}/foamlib/_cases/_async.py +0 -0
  72. {foamlib-1.1.0 → foamlib-1.1.2}/foamlib/_cases/_run.py +0 -0
  73. {foamlib-1.1.0 → foamlib-1.1.2}/foamlib/_cases/_slurm.py +0 -0
  74. {foamlib-1.1.0 → foamlib-1.1.2}/foamlib/_cases/_subprocess.py +0 -0
  75. {foamlib-1.1.0 → foamlib-1.1.2}/foamlib/_cases/_sync.py +0 -0
  76. {foamlib-1.1.0 → foamlib-1.1.2}/foamlib/_cases/_util.py +0 -0
  77. {foamlib-1.1.0 → foamlib-1.1.2}/foamlib/_files/__init__.py +0 -0
  78. {foamlib-1.1.0 → foamlib-1.1.2}/foamlib/_files/_files.py +0 -0
  79. {foamlib-1.1.0 → foamlib-1.1.2}/foamlib/_files/_io.py +0 -0
  80. {foamlib-1.1.0 → foamlib-1.1.2}/foamlib/_files/_types.py +0 -0
  81. {foamlib-1.1.0 → foamlib-1.1.2}/foamlib/postprocessing/__init__.py +0 -0
  82. {foamlib-1.1.0 → foamlib-1.1.2}/foamlib/postprocessing/load_tables.py +0 -0
  83. {foamlib-1.1.0 → foamlib-1.1.2}/foamlib/postprocessing/table_reader.py +0 -0
  84. {foamlib-1.1.0 → foamlib-1.1.2}/foamlib/preprocessing/__init__.py +0 -0
  85. {foamlib-1.1.0 → foamlib-1.1.2}/foamlib/preprocessing/case_modifier.py +0 -0
  86. {foamlib-1.1.0 → foamlib-1.1.2}/foamlib/preprocessing/grid_parameter_sweep.py +0 -0
  87. {foamlib-1.1.0 → foamlib-1.1.2}/foamlib/preprocessing/of_dict.py +0 -0
  88. {foamlib-1.1.0 → foamlib-1.1.2}/foamlib/preprocessing/parameter_study.py +0 -0
  89. {foamlib-1.1.0 → foamlib-1.1.2}/foamlib/preprocessing/system.py +0 -0
  90. {foamlib-1.1.0 → foamlib-1.1.2}/foamlib/py.typed +0 -0
  91. {foamlib-1.1.0 → foamlib-1.1.2}/logo.png +0 -0
  92. {foamlib-1.1.0 → foamlib-1.1.2}/tests/__init__.py +0 -0
  93. {foamlib-1.1.0 → foamlib-1.1.2}/tests/ruff.toml +0 -0
  94. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_cases/__init__.py +0 -0
  95. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_cases/test_cavity.py +0 -0
  96. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_cases/test_cavity_async.py +0 -0
  97. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_example.py +0 -0
  98. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_files/__init__.py +0 -0
  99. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_files/test_files.py +0 -0
  100. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_files/test_parsing/__init__.py +0 -0
  101. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_files/test_parsing/test_advanced.py +0 -0
  102. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_files/test_parsing/test_basic.py +0 -0
  103. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_files/test_parsing/test_decompose_par.py +0 -0
  104. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_files/test_parsing/test_fields.py +0 -0
  105. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_files/test_parsing/test_fv_schemes.py +0 -0
  106. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_files/test_parsing/test_intermediate.py +0 -0
  107. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_files/test_parsing/test_loads.py +0 -0
  108. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_files/test_parsing/test_poly_mesh.py +0 -0
  109. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_files/test_types.py +0 -0
  110. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid1/Allclean +0 -0
  111. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid1/Allrun +0 -0
  112. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid1/case.json +0 -0
  113. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid1/constant/g +0 -0
  114. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid1/constant/thermophysicalProperties +0 -0
  115. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid1/constant/thermophysicalProperties.air +0 -0
  116. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid1/constant/thermophysicalProperties.water +0 -0
  117. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid1/constant/transportProperties +0 -0
  118. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid1/constant/turbulenceProperties +0 -0
  119. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid1/explicitOperators.xml +0 -0
  120. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid1/postProcessing/forces/0/force.dat +0 -0
  121. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid1/postProcessing/forces/0/moment.dat +0 -0
  122. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid1/postProcessing/freeSurface/0.1/U_freeSurface.raw +0 -0
  123. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid1/postProcessing/freeSurface/0.1/p_freeSurface.raw +0 -0
  124. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid1/postProcessing/freeSurface/0.2/U_freeSurface.raw +0 -0
  125. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid1/postProcessing/freeSurface/0.2/p_freeSurface.raw +0 -0
  126. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid1/postProcessing/freeSurface/0.4/U_freeSurface.raw +0 -0
  127. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid1/postProcessing/freeSurface/0.4/p_freeSurface.raw +0 -0
  128. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid1/postProcessing/probes/0/T +0 -0
  129. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid1/postProcessing/probes/0/U +0 -0
  130. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid1/postProcessing/probes/0/p +0 -0
  131. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid1/postProcessing/sample1/0.1/centreLine_T.xy +0 -0
  132. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid1/postProcessing/sample1/0.2/centreLine_T.xy +0 -0
  133. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid1/postProcessing/sample1/0.4/centreLine_T.xy +0 -0
  134. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid1/postProcessing/sample2/0.1/centreLine_U.csv +0 -0
  135. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid1/postProcessing/sample2/0.2/centreLine_U.csv +0 -0
  136. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid1/postProcessing/sample2/0.4/centreLine_U.csv +0 -0
  137. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid1/system/blockMeshDict +0 -0
  138. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid1/system/controlDict +0 -0
  139. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid1/system/decomposeParDict +0 -0
  140. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid1/system/fvSchemes +0 -0
  141. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid1/system/fvSolution +0 -0
  142. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid1/system/setFieldsDict +0 -0
  143. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid2/Allclean +0 -0
  144. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid2/Allrun +0 -0
  145. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid2/case.json +0 -0
  146. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid2/constant/g +0 -0
  147. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid2/constant/thermophysicalProperties +0 -0
  148. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid2/constant/thermophysicalProperties.air +0 -0
  149. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid2/constant/thermophysicalProperties.water +0 -0
  150. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid2/constant/transportProperties +0 -0
  151. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid2/constant/turbulenceProperties +0 -0
  152. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid2/damBreak.foam +0 -0
  153. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid2/explicitOperators.xml +0 -0
  154. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid2/postProcessing/forces/0/force.dat +0 -0
  155. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid2/postProcessing/forces/0/moment.dat +0 -0
  156. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid2/postProcessing/freeSurface/0.1/U_freeSurface.raw +0 -0
  157. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid2/postProcessing/freeSurface/0.1/p_freeSurface.raw +0 -0
  158. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid2/postProcessing/freeSurface/0.2/U_freeSurface.raw +0 -0
  159. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid2/postProcessing/freeSurface/0.2/p_freeSurface.raw +0 -0
  160. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid2/postProcessing/freeSurface/0.4/U_freeSurface.raw +0 -0
  161. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid2/postProcessing/freeSurface/0.4/p_freeSurface.raw +0 -0
  162. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid2/postProcessing/probes/0/T +0 -0
  163. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid2/postProcessing/probes/0/U +0 -0
  164. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid2/postProcessing/probes/0/p +0 -0
  165. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid2/postProcessing/sample1/0.1/centreLine_T.xy +0 -0
  166. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid2/postProcessing/sample1/0.2/centreLine_T.xy +0 -0
  167. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid2/postProcessing/sample1/0.4/centreLine_T.xy +0 -0
  168. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid2/system/blockMeshDict +0 -0
  169. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid2/system/controlDict +0 -0
  170. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid2/system/decomposeParDict +0 -0
  171. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid2/system/fvSchemes +0 -0
  172. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid2/system/fvSolution +0 -0
  173. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_02/grid2/system/setFieldsDict +0 -0
  174. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_03/grid3/Allclean +0 -0
  175. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_03/grid3/Allrun +0 -0
  176. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_03/grid3/case.json +0 -0
  177. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_03/grid3/constant/g +0 -0
  178. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_03/grid3/constant/thermophysicalProperties +0 -0
  179. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_03/grid3/constant/thermophysicalProperties.air +0 -0
  180. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_03/grid3/constant/thermophysicalProperties.water +0 -0
  181. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_03/grid3/constant/transportProperties +0 -0
  182. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_03/grid3/constant/turbulenceProperties +0 -0
  183. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_03/grid3/damBreak.foam +0 -0
  184. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_03/grid3/explicitOperators.xml +0 -0
  185. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_03/grid3/postProcessing/forces/0/force.dat +0 -0
  186. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_03/grid3/postProcessing/forces/0/moment.dat +0 -0
  187. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_03/grid3/postProcessing/freeSurface/0.1/U_freeSurface.raw +0 -0
  188. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_03/grid3/postProcessing/freeSurface/0.1/p_freeSurface.raw +0 -0
  189. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_03/grid3/postProcessing/freeSurface/0.2/U_freeSurface.raw +0 -0
  190. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_03/grid3/postProcessing/freeSurface/0.2/p_freeSurface.raw +0 -0
  191. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_03/grid3/postProcessing/freeSurface/0.4/U_freeSurface.raw +0 -0
  192. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_03/grid3/postProcessing/freeSurface/0.4/p_freeSurface.raw +0 -0
  193. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_03/grid3/postProcessing/probes/0/T +0 -0
  194. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_03/grid3/postProcessing/probes/0/U +0 -0
  195. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_03/grid3/postProcessing/probes/0/p +0 -0
  196. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_03/grid3/postProcessing/sample1/0.1/centreLine_T.xy +0 -0
  197. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_03/grid3/postProcessing/sample1/0.2/centreLine_T.xy +0 -0
  198. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_03/grid3/postProcessing/sample1/0.4/centreLine_T.xy +0 -0
  199. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_03/grid3/system/blockMeshDict +0 -0
  200. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_03/grid3/system/controlDict +0 -0
  201. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_03/grid3/system/decomposeParDict +0 -0
  202. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_03/grid3/system/fvSchemes +0 -0
  203. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_03/grid3/system/fvSolution +0 -0
  204. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/Cases/fluidHeight_03/grid3/system/setFieldsDict +0 -0
  205. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/__init__.py +0 -0
  206. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/postProcessing/forces/0/force.dat +0 -0
  207. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/postProcessing/forces/0/moment.dat +0 -0
  208. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/postProcessing/freeSurface/0.05/U_freeSurface.raw +0 -0
  209. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/postProcessing/freeSurface/0.05/p_freeSurface.raw +0 -0
  210. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/postProcessing/freeSurface/0.1/U_freeSurface.raw +0 -0
  211. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/postProcessing/freeSurface/0.1/p_freeSurface.raw +0 -0
  212. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/postProcessing/freeSurface/0.15/U_freeSurface.raw +0 -0
  213. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/postProcessing/freeSurface/0.15/p_freeSurface.raw +0 -0
  214. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/postProcessing/freeSurface/0.2/U_freeSurface.raw +0 -0
  215. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/postProcessing/freeSurface/0.2/p_freeSurface.raw +0 -0
  216. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/postProcessing/freeSurface/0.25/U_freeSurface.raw +0 -0
  217. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/postProcessing/freeSurface/0.25/p_freeSurface.raw +0 -0
  218. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/postProcessing/freeSurface/0.3/U_freeSurface.raw +0 -0
  219. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/postProcessing/freeSurface/0.3/p_freeSurface.raw +0 -0
  220. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/postProcessing/freeSurface/0.35/U_freeSurface.raw +0 -0
  221. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/postProcessing/freeSurface/0.35/p_freeSurface.raw +0 -0
  222. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/postProcessing/freeSurface/0.4/U_freeSurface.raw +0 -0
  223. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/postProcessing/freeSurface/0.4/p_freeSurface.raw +0 -0
  224. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/postProcessing/probes/0/T +0 -0
  225. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/postProcessing/probes/0/U +0 -0
  226. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/postProcessing/probes/0/p +0 -0
  227. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/postProcessing/sample1/0.05/centreLine_T.xy +0 -0
  228. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/postProcessing/sample1/0.1/centreLine_T.xy +0 -0
  229. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/postProcessing/sample1/0.15/centreLine_T.xy +0 -0
  230. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/postProcessing/sample1/0.2/centreLine_T.xy +0 -0
  231. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/postProcessing/sample1/0.25/centreLine_T.xy +0 -0
  232. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/postProcessing/sample1/0.3/centreLine_T.xy +0 -0
  233. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/postProcessing/sample1/0.35/centreLine_T.xy +0 -0
  234. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/postProcessing/sample1/0.4/centreLine_T.xy +0 -0
  235. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/postProcessing/sample2/0.05/centreLine_U.csv +0 -0
  236. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/postProcessing/sample2/0.1/centreLine_U.csv +0 -0
  237. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/postProcessing/sample2/0.15/centreLine_U.csv +0 -0
  238. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/postProcessing/sample2/0.2/centreLine_U.csv +0 -0
  239. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/postProcessing/sample2/0.25/centreLine_U.csv +0 -0
  240. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/postProcessing/sample2/0.3/centreLine_U.csv +0 -0
  241. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/postProcessing/sample2/0.35/centreLine_U.csv +0 -0
  242. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/postProcessing/sample2/0.4/centreLine_U.csv +0 -0
  243. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/test_load_tables.py +0 -0
  244. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_postprocessing/test_readers.py +0 -0
  245. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_preprocessing/__init__.py +0 -0
  246. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_preprocessing/dictionaries/testDictionary +0 -0
  247. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_preprocessing/templates/damBreak/0/T +0 -0
  248. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_preprocessing/templates/damBreak/0/U +0 -0
  249. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_preprocessing/templates/damBreak/0/alpha.water +0 -0
  250. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_preprocessing/templates/damBreak/0/p +0 -0
  251. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_preprocessing/templates/damBreak/0/p_rgh +0 -0
  252. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_preprocessing/templates/damBreak/Allclean +0 -0
  253. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_preprocessing/templates/damBreak/Allrun +0 -0
  254. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_preprocessing/templates/damBreak/constant/g +0 -0
  255. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_preprocessing/templates/damBreak/constant/thermophysicalProperties +0 -0
  256. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_preprocessing/templates/damBreak/constant/thermophysicalProperties.air +0 -0
  257. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_preprocessing/templates/damBreak/constant/thermophysicalProperties.water +0 -0
  258. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_preprocessing/templates/damBreak/constant/transportProperties +0 -0
  259. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_preprocessing/templates/damBreak/constant/turbulenceProperties +0 -0
  260. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_preprocessing/templates/damBreak/damBreak.foam +0 -0
  261. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_preprocessing/templates/damBreak/postProcessing/forces/0/force.dat +0 -0
  262. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_preprocessing/templates/damBreak/system/blockMeshDict +0 -0
  263. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_preprocessing/templates/damBreak/system/controlDict +0 -0
  264. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_preprocessing/templates/damBreak/system/decomposeParDict +0 -0
  265. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_preprocessing/templates/damBreak/system/fvSchemes +0 -0
  266. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_preprocessing/templates/damBreak/system/fvSolution +0 -0
  267. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_preprocessing/templates/damBreak/system/setFieldsDict +0 -0
  268. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_preprocessing/templates/damBreak/system/simulationParameters +0 -0
  269. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_preprocessing/test_case_modifier.py +0 -0
  270. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_preprocessing/test_csv_generator.py +0 -0
  271. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_preprocessing/test_grid_generator.py +0 -0
  272. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_preprocessing/test_of_dict.py +0 -0
  273. {foamlib-1.1.0 → foamlib-1.1.2}/tests/test_preprocessing/test_parastudy.csv +0 -0
@@ -51,14 +51,14 @@ jobs:
51
51
  options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
52
52
  strategy:
53
53
  matrix:
54
- openfoam-version: [2506, 2006, 12, 9]
54
+ openfoam-version: [2506, 2006, 13, 9]
55
55
  python-version: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12', '3.13']
56
56
  slurm: [false]
57
57
  include:
58
58
  - openfoam-version: 2506
59
59
  python-version: '3.13'
60
60
  slurm: true
61
- - openfoam-version: 12
61
+ - openfoam-version: 13
62
62
  python-version: '3.13'
63
63
  slurm: true
64
64
  - openfoam-version: 2006
@@ -80,7 +80,7 @@ jobs:
80
80
  packages: write
81
81
  strategy:
82
82
  matrix:
83
- openfoam-version: [2506, 2412, 12, 11]
83
+ openfoam-version: [2506, 2412, 13, 12]
84
84
  fail-fast: false
85
85
  steps:
86
86
  - name: Set up QEMU
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: foamlib
3
- Version: 1.1.0
3
+ Version: 1.1.2
4
4
  Summary: A Python interface for interacting with OpenFOAM
5
5
  Project-URL: Homepage, https://github.com/gerlero/foamlib
6
6
  Project-URL: Repository, https://github.com/gerlero/foamlib
@@ -1,6 +1,6 @@
1
1
  """A Python interface for interacting with OpenFOAM."""
2
2
 
3
- __version__ = "1.1.0"
3
+ __version__ = "1.1.2"
4
4
 
5
5
  from ._cases import (
6
6
  AsyncFoamCase,
@@ -174,12 +174,21 @@ class FoamCaseBase(Sequence["FoamCaseBase.TimeDirectory"]):
174
174
 
175
175
  @property
176
176
  def application(self) -> str:
177
- """The application name as set in the controlDict."""
178
- application = self.control_dict["application"]
179
- if not isinstance(application, str):
180
- msg = f"application in {self.control_dict} is not a string"
181
- raise TypeError(msg)
182
- return application
177
+ """The application name."""
178
+ control_dict = self.control_dict
179
+ try:
180
+ ret = control_dict["application"]
181
+ except KeyError:
182
+ if "solver" in control_dict:
183
+ return "foamRun"
184
+ if "regionSolvers" in control_dict:
185
+ return "foamMultiRun"
186
+ raise
187
+ else:
188
+ if not isinstance(ret, str):
189
+ msg = f"application in {control_dict} is not a string: {ret}"
190
+ raise TypeError(msg)
191
+ return ret
183
192
 
184
193
  @property
185
194
  def control_dict(self) -> FoamFile:
@@ -334,14 +334,10 @@ _SWITCH = (
334
334
  Keyword("yes", _IDENTBODYCHARS)
335
335
  | Keyword("true", _IDENTBODYCHARS)
336
336
  | Keyword("on", _IDENTBODYCHARS)
337
- | Keyword("y", _IDENTBODYCHARS)
338
- | Keyword("t", _IDENTBODYCHARS)
339
337
  ).set_parse_action(lambda: True) | (
340
338
  Keyword("no", _IDENTBODYCHARS)
341
339
  | Keyword("false", _IDENTBODYCHARS)
342
340
  | Keyword("off", _IDENTBODYCHARS)
343
- | Keyword("n", _IDENTBODYCHARS)
344
- | Keyword("f", _IDENTBODYCHARS)
345
341
  ).set_parse_action(lambda: False)
346
342
  _DIMENSIONS = (
347
343
  Literal("[").suppress() + common.number[0, 7] + Literal("]").suppress()
@@ -126,7 +126,7 @@ def normalize_data(
126
126
  return [normalize_data(d) for d in data] # type: ignore [arg-type, return-value]
127
127
 
128
128
  if isinstance(data, tuple) and not isinstance(data, DimensionSet):
129
- return tuple(normalize_data(d, keywords=keywords) for d in data) # type: ignore [misc]
129
+ return tuple(normalize_data(d, keywords=keywords) for d in data) # type: ignore [arg-type]
130
130
 
131
131
  if isinstance(data, str):
132
132
  s = loads(data, keywords=keywords)
@@ -47,7 +47,9 @@ parameter_sweep = [
47
47
  lint = ["ruff"]
48
48
  typing = [
49
49
  "mypy>=1,<2",
50
+ "pandas-stubs",
50
51
  "scipy-stubs; python_version>='3.10'",
52
+ "types-defusedxml; python_version>='3.8'",
51
53
  ]
52
54
  test = [
53
55
  "pytest>=7,<9",
@@ -57,7 +57,7 @@ def test_run_cmd(flange: FoamCase) -> None:
57
57
  "0.001",
58
58
  ],
59
59
  )
60
- flange.run([flange.application])
60
+ flange.run(["laplacianFoam"])
61
61
 
62
62
 
63
63
  def test_run_cmd_shell(flange: FoamCase) -> None:
@@ -71,7 +71,7 @@ def test_run_cmd_shell(flange: FoamCase) -> None:
71
71
  except CalledProcessError:
72
72
  flange.run('ansysToFoam "flange.ans" -scale 0.001')
73
73
 
74
- flange.run(flange.application)
74
+ flange.run("laplacianFoam")
75
75
 
76
76
 
77
77
  def test_path(flange: FoamCase) -> None:
@@ -73,9 +73,9 @@ async def test_run_cmd(flange: AsyncFoamCase) -> None:
73
73
  )
74
74
 
75
75
  if isinstance(flange, AsyncSlurmFoamCase):
76
- await flange.run([flange.application], fallback=True)
76
+ await flange.run(["laplacianFoam"], fallback=True)
77
77
  else:
78
- await flange.run([flange.application])
78
+ await flange.run(["laplacianFoam"])
79
79
 
80
80
 
81
81
  @pytest.mark.asyncio
@@ -92,9 +92,9 @@ async def test_run_cmd_shell(flange: AsyncFoamCase) -> None:
92
92
  await flange.run('ansysToFoam "flange.ans" -scale 0.001', cpus=0)
93
93
 
94
94
  if isinstance(flange, AsyncSlurmFoamCase):
95
- await flange.run(flange.application, fallback=True)
95
+ await flange.run("laplacianFoam", fallback=True)
96
96
  else:
97
- await flange.run(flange.application)
97
+ await flange.run("laplacianFoam")
98
98
 
99
99
 
100
100
  def test_path(flange: AsyncFoamCase) -> None:
@@ -89,7 +89,10 @@ def test_serialize_data() -> None:
89
89
  )
90
90
  == b"hex (0 1 2 3 4 5 6 7) (1 1 1) simpleGrading (1 1 1)"
91
91
  )
92
- assert dumps([("a", "b"), ("c", "d")]) == b"(a b; c d;)"
92
+ assert (
93
+ dumps([("a", "b"), ("c", "d"), ("n", "no"), ("y", "yes")])
94
+ == b"(a b; c d; n no; y yes;)"
95
+ )
93
96
  assert dumps([("a", {"b": "c"}), ("d", {"e": "g"})]) == b"(a {b c;} d {e g;})"
94
97
  assert dumps([("a", [0, 1, 2]), ("b", {})]) == b"(a (0 1 2); b {})"
95
98
  assert dumps(["water", "oil", "mercury", "air"]) == b"(water oil mercury air)"
@@ -103,8 +106,8 @@ def test_serialize_file() -> None:
103
106
  == b"{FoamFile {version 2.0; format ascii; class dictionary;}} 1.0"
104
107
  )
105
108
  assert (
106
- FoamFile.dumps({"a": "b", "c": "d"})
107
- == b"{FoamFile {version 2.0; format ascii; class dictionary;}} a b; c d;"
109
+ FoamFile.dumps({"a": "b", "c": "d", "n": "no", "y": "yes"})
110
+ == b"{FoamFile {version 2.0; format ascii; class dictionary;}} a b; c d; n no; y yes;"
108
111
  )
109
112
  assert (
110
113
  FoamFile.dumps({"internalField": [[1, 2, 3], [4, 5, 6]]})
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes