pyfemtet 0.8.3__tar.gz → 0.8.4__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 pyfemtet might be problematic. Click here for more details.

Files changed (146) hide show
  1. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/PKG-INFO +1 -1
  2. pyfemtet-0.8.4/pyfemtet/__init__.py +1 -0
  3. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/_femopt.py +4 -5
  4. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/_femopt_core.py +1 -2
  5. pyfemtet-0.8.4/pyfemtet/opt/interface/__init__.py +34 -0
  6. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyproject.toml +1 -1
  7. pyfemtet-0.8.3/pyfemtet/__init__.py +0 -1
  8. pyfemtet-0.8.3/pyfemtet/_imports.py +0 -108
  9. pyfemtet-0.8.3/pyfemtet/opt/interface/__init__.py +0 -30
  10. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/LICENSE +0 -0
  11. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/README.md +0 -0
  12. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/_femtet_config_util/__init__.py +0 -0
  13. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/_femtet_config_util/autosave.py +0 -0
  14. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/_femtet_config_util/exit.py +0 -0
  15. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/_message/1. make_pot.bat +0 -0
  16. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/_message/2. make_mo.bat +0 -0
  17. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/_message/__init__.py +0 -0
  18. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/_message/babel.cfg +0 -0
  19. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/_message/locales/ja/LC_MESSAGES/messages.mo +0 -0
  20. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/_message/locales/ja/LC_MESSAGES/messages.po +0 -0
  21. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/_message/locales/messages.pot +0 -0
  22. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/_message/messages.py +0 -0
  23. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/_util/__init__.py +0 -0
  24. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/_util/dask_util.py +0 -0
  25. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/_util/excel_macro_util.py +0 -0
  26. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/_util/excel_parse_util.py +0 -0
  27. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/_util/sample.xlsx +0 -0
  28. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/_warning.py +0 -0
  29. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/brep/__init__.py +0 -0
  30. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/brep/_impl.py +0 -0
  31. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/core.py +0 -0
  32. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/dispatch_extensions/__init__.py +0 -0
  33. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/dispatch_extensions/_impl.py +0 -0
  34. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/logger/__init__.py +0 -0
  35. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/logger/_impl.py +0 -0
  36. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/__init__.py +0 -0
  37. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/_test_utils/__init__.py +0 -0
  38. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/_test_utils/control_femtet.py +0 -0
  39. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/_test_utils/hyper_sphere.py +0 -0
  40. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/_test_utils/record_history.py +0 -0
  41. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/advanced_samples/excel_ui/(ref) original_project.femprj +0 -0
  42. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/advanced_samples/excel_ui/femtet-macro.xlsm +0 -0
  43. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/advanced_samples/excel_ui/pyfemtet-core.py +0 -0
  44. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/advanced_samples/excel_ui/test-pyfemtet-core.cmd +0 -0
  45. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/advanced_samples/surrogate_model/gal_ex13_create_training_data.py +0 -0
  46. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/advanced_samples/surrogate_model/gal_ex13_create_training_data_jp.py +0 -0
  47. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/advanced_samples/surrogate_model/gal_ex13_optimize_with_surrogate.py +0 -0
  48. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/advanced_samples/surrogate_model/gal_ex13_optimize_with_surrogate_jp.py +0 -0
  49. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/advanced_samples/surrogate_model/gal_ex13_parametric.femprj +0 -0
  50. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/interface/_base.py +0 -0
  51. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/interface/_excel_interface.py +0 -0
  52. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/interface/_femtet.py +0 -0
  53. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/interface/_femtet_parametric.py +0 -0
  54. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/interface/_femtet_with_nx/__init__.py +0 -0
  55. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/interface/_femtet_with_nx/_interface.py +0 -0
  56. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/interface/_femtet_with_nx/update_model.py +0 -0
  57. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/interface/_femtet_with_sldworks.py +0 -0
  58. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/interface/_surrogate/__init__.py +0 -0
  59. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/interface/_surrogate/_base.py +0 -0
  60. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/interface/_surrogate/_chaospy.py +0 -0
  61. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/interface/_surrogate/_singletaskgp.py +0 -0
  62. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/optimizer/__init__.py +0 -0
  63. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/optimizer/_base.py +0 -0
  64. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/optimizer/_optuna/__init__.py +0 -0
  65. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/optimizer/_optuna/_botorch_patch/__init__.py +0 -0
  66. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/optimizer/_optuna/_botorch_patch/enable_nonlinear_constraint.py +0 -0
  67. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/optimizer/_optuna/_optuna.py +0 -0
  68. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/optimizer/_optuna/_pof_botorch.py +0 -0
  69. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/optimizer/_scipy.py +0 -0
  70. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/optimizer/_scipy_scalar.py +0 -0
  71. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/optimizer/parameter.py +0 -0
  72. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/prediction/__init__.py +0 -0
  73. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/prediction/_base.py +0 -0
  74. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/prediction/single_task_gp.py +0 -0
  75. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample/ParametricIF.femprj +0 -0
  76. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample/ParametricIF.py +0 -0
  77. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample/ParametricIF_test_result.reccsv +0 -0
  78. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample/cad_ex01_NX.femprj +0 -0
  79. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample/cad_ex01_NX.prt +0 -0
  80. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample/cad_ex01_NX.py +0 -0
  81. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample/cad_ex01_NX_test_result.reccsv +0 -0
  82. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample/cad_ex01_SW.SLDPRT +0 -0
  83. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample/cad_ex01_SW.femprj +0 -0
  84. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample/cad_ex01_SW.py +0 -0
  85. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample/cad_ex01_SW_test_result.reccsv +0 -0
  86. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample/constrained_pipe.femprj +0 -0
  87. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample/constrained_pipe.py +0 -0
  88. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample/constrained_pipe_test_result.reccsv +0 -0
  89. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample/gal_ex58_parametric.femprj +0 -0
  90. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample/gal_ex58_parametric.py +0 -0
  91. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample/gal_ex58_parametric_test_result.reccsv +0 -0
  92. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample/gau_ex08_parametric.femprj +0 -0
  93. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample/gau_ex08_parametric.py +0 -0
  94. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample/gau_ex08_parametric_test_result.reccsv +0 -0
  95. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample/her_ex40_parametric.femprj +0 -0
  96. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample/her_ex40_parametric.py +0 -0
  97. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample/her_ex40_parametric_test_result.reccsv +0 -0
  98. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample/paswat_ex1_parametric.femprj +0 -0
  99. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample/paswat_ex1_parametric.py +0 -0
  100. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample/paswat_ex1_parametric_parallel.py +0 -0
  101. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample/paswat_ex1_parametric_test_result.reccsv +0 -0
  102. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample/wat_ex14_parametric.femprj +0 -0
  103. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample/wat_ex14_parametric.py +0 -0
  104. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample/wat_ex14_parametric_parallel.py +0 -0
  105. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample/wat_ex14_parametric_test_result.reccsv +0 -0
  106. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample_jp/ParametricIF_jp.femprj +0 -0
  107. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample_jp/ParametricIF_jp.py +0 -0
  108. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample_jp/cad_ex01_NX_jp.femprj +0 -0
  109. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample_jp/cad_ex01_NX_jp.py +0 -0
  110. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample_jp/cad_ex01_SW_jp.femprj +0 -0
  111. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample_jp/cad_ex01_SW_jp.py +0 -0
  112. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample_jp/constrained_pipe_jp.py +0 -0
  113. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample_jp/gal_ex58_parametric_jp.femprj +0 -0
  114. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample_jp/gal_ex58_parametric_jp.py +0 -0
  115. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample_jp/gau_ex08_parametric_jp.femprj +0 -0
  116. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample_jp/gau_ex08_parametric_jp.py +0 -0
  117. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample_jp/her_ex40_parametric_jp.femprj +0 -0
  118. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample_jp/her_ex40_parametric_jp.py +0 -0
  119. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample_jp/paswat_ex1_parametric_jp.femprj +0 -0
  120. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample_jp/paswat_ex1_parametric_jp.py +0 -0
  121. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample_jp/paswat_ex1_parametric_parallel_jp.py +0 -0
  122. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample_jp/wat_ex14_parametric_jp.femprj +0 -0
  123. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample_jp/wat_ex14_parametric_jp.py +0 -0
  124. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/samples/femprj_sample_jp/wat_ex14_parametric_parallel_jp.py +0 -0
  125. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/visualization/__init__.py +0 -0
  126. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/visualization/_base.py +0 -0
  127. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/visualization/_complex_components/__init__.py +0 -0
  128. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/visualization/_complex_components/alert_region.py +0 -0
  129. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/visualization/_complex_components/control_femtet.py +0 -0
  130. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/visualization/_complex_components/main_figure_creator.py +0 -0
  131. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/visualization/_complex_components/main_graph.py +0 -0
  132. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/visualization/_complex_components/pm_graph.py +0 -0
  133. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/visualization/_complex_components/pm_graph_creator.py +0 -0
  134. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/visualization/_create_wrapped_components.py +0 -0
  135. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/visualization/_process_monitor/__init__.py +0 -0
  136. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/visualization/_process_monitor/application.py +0 -0
  137. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/visualization/_process_monitor/pages.py +0 -0
  138. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/visualization/_wrapped_components/__init__.py +0 -0
  139. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/visualization/_wrapped_components/dbc.py +0 -0
  140. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/visualization/_wrapped_components/dcc.py +0 -0
  141. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/visualization/_wrapped_components/html.py +0 -0
  142. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/visualization/_wrapped_components/str_enum.py +0 -0
  143. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/visualization/result_viewer/.gitignore +0 -0
  144. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/visualization/result_viewer/__init__.py +0 -0
  145. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/visualization/result_viewer/application.py +0 -0
  146. {pyfemtet-0.8.3 → pyfemtet-0.8.4}/pyfemtet/opt/visualization/result_viewer/pages.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pyfemtet
3
- Version: 0.8.3
3
+ Version: 0.8.4
4
4
  Summary: Design parameter optimization using Femtet.
5
5
  License: BSD-3-Clause
6
6
  Author: kazuma.naito
@@ -0,0 +1 @@
1
+ __version__ = "0.8.4"
@@ -31,7 +31,6 @@ from pyfemtet.opt._femopt_core import (
31
31
  from pyfemtet._message import Msg, encoding
32
32
  from pyfemtet.opt.optimizer.parameter import Parameter, Expression
33
33
  from pyfemtet._warning import experimental_feature
34
- from pyfemtet._imports import *
35
34
 
36
35
  from dask import config as cfg
37
36
  cfg.set({'distributed.scheduler.worker-ttl': None})
@@ -368,7 +367,7 @@ class FEMOpt:
368
367
  # 引数の処理
369
368
  if fun is None:
370
369
  from pyfemtet.opt.interface import SurrogateModelInterfaceBase
371
- if not isinstance_wrapper(self.fem, SurrogateModelInterfaceBase):
370
+ if not isinstance(self.fem, SurrogateModelInterfaceBase):
372
371
  raise ValueError('`fun` argument is not specified.')
373
372
  if args is None:
374
373
  args = tuple()
@@ -511,13 +510,13 @@ class FEMOpt:
511
510
  name = candidate
512
511
  if using_fem is None:
513
512
  # 自動推定機能は Femtet 特有の処理とする
514
- if isinstance_wrapper(self.fem, FemtetInterface):
513
+ if isinstance(self.fem, FemtetInterface):
515
514
  using_fem = _is_access_femtet(fun)
516
515
  else:
517
516
  using_fem = False
518
517
 
519
518
  # strict constraint の場合、solve 前に評価したいので Gogh へのアクセスを禁ずる
520
- if strict and isinstance_wrapper(self.fem, FemtetInterface):
519
+ if strict and isinstance(self.fem, FemtetInterface):
521
520
  if _is_access_gogh(fun):
522
521
  message = Msg.ERR_CONTAIN_GOGH_ACCESS_IN_STRICT_CONSTRAINT
523
522
  raise Exception(message)
@@ -681,7 +680,7 @@ class FEMOpt:
681
680
 
682
681
  # Femtet 特有の処理
683
682
  metadata = None
684
- if isinstance_wrapper(self.fem, FemtetInterface):
683
+ if isinstance(self.fem, FemtetInterface):
685
684
 
686
685
  # 結果 csv に記載する femprj に関する情報の作成
687
686
  metadata = json.dumps(
@@ -36,7 +36,6 @@ else:
36
36
  # pyfemtet relative
37
37
  from pyfemtet.opt.interface import FEMInterface, FemtetInterface
38
38
  from pyfemtet._message import encoding, Msg
39
- from pyfemtet._imports import *
40
39
 
41
40
  # logger
42
41
  from pyfemtet.logger import get_module_logger
@@ -324,7 +323,7 @@ class Function:
324
323
 
325
324
  args = self.args
326
325
  # Femtet 特有の処理
327
- if isinstance_wrapper(fem, FemtetInterface):
326
+ if isinstance(fem, FemtetInterface):
328
327
  args = (fem.Femtet, *args)
329
328
  return float(self.fun(*args, **self.kwargs))
330
329
 
@@ -0,0 +1,34 @@
1
+ import platform
2
+ from typing import TYPE_CHECKING
3
+
4
+ from pyfemtet.opt.interface._base import FEMInterface
5
+ from pyfemtet.opt.interface._base import NoFEM
6
+
7
+ if (platform.system() == 'Windows') or TYPE_CHECKING:
8
+ from pyfemtet.opt.interface._femtet import FemtetInterface
9
+ from pyfemtet.opt.interface._femtet_with_sldworks import FemtetWithSolidworksInterface
10
+ from pyfemtet.opt.interface._femtet_with_nx import FemtetWithNXInterface
11
+ from pyfemtet.opt.interface._excel_interface import ExcelInterface
12
+
13
+ else:
14
+ class NotAvailableForWindows:
15
+ def __init__(self, *args, **kwargs):
16
+ raise NotImplementedError
17
+
18
+
19
+ FemtetInterface = type('FemtetInterface', (NotAvailableForWindows,), {})
20
+ FemtetWithSolidworksInterface = type('FemtetWithSolidworksInterface', (FemtetInterface,), {})
21
+ FemtetWithNXInterface = type('FemtetWithNXInterface', (FemtetInterface,), {})
22
+ ExcelInterface = type('FemtetInterface', (NotAvailableForWindows,), {})
23
+
24
+ from pyfemtet.opt.interface._surrogate import PoFBoTorchInterface
25
+
26
+ __all__ =[
27
+ 'FEMInterface',
28
+ 'NoFEM',
29
+ 'FemtetInterface',
30
+ 'FemtetWithSolidworksInterface',
31
+ 'FemtetWithNXInterface',
32
+ 'ExcelInterface',
33
+ 'PoFBoTorchInterface',
34
+ ]
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "pyfemtet"
3
- version = "0.8.3" # ignored by versioning plugin
3
+ version = "0.8.4" # ignored by versioning plugin
4
4
  description = "Design parameter optimization using Femtet."
5
5
  authors = ["kazuma.naito <kazuma.naito@murata.com>"]
6
6
  readme = "README.md"
@@ -1 +0,0 @@
1
- __version__ = "0.8.3"
@@ -1,108 +0,0 @@
1
- import types
2
- import importlib
3
- from typing import TYPE_CHECKING, Any
4
- from abc import ABCMeta
5
-
6
-
7
- __all__ = [
8
- 'isinstance_wrapper',
9
- '_LazyImport',
10
- '_lazy_class_factory',
11
- ]
12
-
13
-
14
- class _MetaClass(ABCMeta):
15
- __original_cls__: type
16
-
17
- def __repr__(self):
18
- if hasattr(self, '__original_cls__'):
19
- return f'<LazyClass of {self.__original_cls__()}>'
20
- else:
21
- return f'<LazyClass of <unloaded class>>'
22
-
23
-
24
- def _lazy_class_factory(module, cls_name):
25
- class LazyClass(object, metaclass=_MetaClass):
26
- # 継承を正しくコピーできていないので
27
- # issubclass を使う際は注意
28
- def __new__(cls, *args, **kwargs):
29
- OriginalClass = cls.__original_cls__()
30
- self = OriginalClass(*args, **kwargs)
31
- return self
32
-
33
- @staticmethod
34
- def __original_cls__():
35
- return getattr(module, cls_name)
36
-
37
- return LazyClass
38
-
39
-
40
- class _LazyImport(types.ModuleType):
41
- """Module wrapper for lazy import.
42
-
43
- Note:
44
- This module is totally derived from `optuna._imports._LazyImport`.
45
- The following author has the copyright of this code.
46
-
47
- *******************************************
48
- Copyright (c) 2018 Preferred Networks, Inc.
49
- *******************************************
50
-
51
- This class wraps the specified modules and lazily imports them only when accessed.
52
- Otherwise, `import optuna` is slowed down by importing all submodules and
53
- dependencies even if not required.
54
- Within this project's usage, importlib override this module's attribute on the first
55
- access and the imported submodule is directly accessed from the second access.
56
-
57
- Args:
58
- name: Name of module to apply lazy import.
59
- """
60
-
61
- def __init__(self, name: str) -> None:
62
- super().__init__(name)
63
- self._name = name
64
-
65
- def _load(self) -> types.ModuleType:
66
- module = importlib.import_module(self._name)
67
- self.__dict__.update(module.__dict__)
68
- return module
69
-
70
- def __getattr__(self, item: str) -> Any:
71
- return getattr(self._load(), item)
72
-
73
-
74
- def isinstance_wrapper(obj: object, cls: type) -> bool:
75
- if isinstance(cls, _MetaClass):
76
- try:
77
- cls_ = cls.__original_cls__()
78
- except ModuleNotFoundError:
79
- return False
80
- return isinstance(obj, cls_)
81
- else:
82
- return isinstance(obj, cls)
83
-
84
-
85
- if __name__ == '__main__':
86
- if TYPE_CHECKING:
87
- # for type check only
88
- import numpy
89
- NDArray = numpy.ndarray
90
- import no_module
91
- else:
92
- # runtime
93
- numpy = _LazyImport('numpy')
94
- NDArray = _lazy_class_factory(numpy, 'ndarray')
95
- NDArray2 = _lazy_class_factory(numpy, 'ndarray')
96
- no_module = _LazyImport('no_module')
97
- NoClass = _lazy_class_factory(no_module, 'NoClass')
98
-
99
- print('numpy is loaded:', numpy.__doc__ is not None)
100
- a = NDArray(shape=[1])
101
- print('numpy is loaded:', numpy.__doc__ is not None)
102
-
103
- print(f"{isinstance(None, NoClass)=}")
104
- print(f"{isinstance_wrapper(None, NoClass)=}")
105
- print(f"{isinstance(a, NDArray)=}")
106
- print(f"{isinstance_wrapper(a, NDArray)=}")
107
- print(f"{isinstance_wrapper(a, NoClass)=}")
108
- print(f"{isinstance_wrapper(a, NDArray2)=}")
@@ -1,30 +0,0 @@
1
- from typing import TYPE_CHECKING
2
- from pyfemtet._imports import _LazyImport, _lazy_class_factory
3
-
4
- from pyfemtet.opt.interface._base import FEMInterface
5
- from pyfemtet.opt.interface._base import NoFEM
6
-
7
- if TYPE_CHECKING:
8
- from pyfemtet.opt.interface._femtet import FemtetInterface
9
- from pyfemtet.opt.interface._femtet_with_sldworks import FemtetWithSolidworksInterface
10
- from pyfemtet.opt.interface._femtet_with_nx import FemtetWithNXInterface
11
- from pyfemtet.opt.interface._surrogate import PoFBoTorchInterface
12
- from pyfemtet.opt.interface._excel_interface import ExcelInterface
13
-
14
- else:
15
- FemtetInterface = _lazy_class_factory(_LazyImport('pyfemtet.opt.interface._femtet'), 'FemtetInterface')
16
- FemtetWithSolidworksInterface = _lazy_class_factory(_LazyImport('pyfemtet.opt.interface._femtet_with_sldworks'), 'FemtetWithSolidworksInterface')
17
- FemtetWithNXInterface = _lazy_class_factory(_LazyImport('pyfemtet.opt.interface._femtet_with_nx'), 'FemtetWithNXInterface')
18
- PoFBoTorchInterface = _lazy_class_factory(_LazyImport('pyfemtet.opt.interface._surrogate'), 'PoFBoTorchInterface')
19
- ExcelInterface = _lazy_class_factory(_LazyImport('pyfemtet.opt.interface._excel_interface'), 'ExcelInterface')
20
-
21
-
22
-
23
- __all__ = [
24
- 'FEMInterface',
25
- 'NoFEM',
26
- 'FemtetInterface',
27
- 'FemtetWithNXInterface',
28
- 'FemtetWithSolidworksInterface',
29
- 'PoFBoTorchInterface',
30
- ]
File without changes
File without changes
File without changes
File without changes