Mod: update packages
Mov: documentation
3
.gitignore
vendored
@ -23,3 +23,6 @@ env/
|
||||
.coverage
|
||||
.venv
|
||||
.pytest_cache
|
||||
dist/
|
||||
doc/anisotropy/*
|
||||
!doc/anisotropy/.gitkeep
|
2
.vscode/settings.json
vendored
@ -8,5 +8,5 @@
|
||||
"python.linting.enabled": true,
|
||||
"python.linting.pylintEnabled": false,
|
||||
"python.linting.flake8Enabled": true,
|
||||
"python.linting.flake8Args": ["--ignore=E402,E251,E501", "--verbose"]
|
||||
"python.linting.flake8Args": ["--ignore=E402,E251,E501,E201,E202,W293,W291", "--verbose"]
|
||||
}
|
@ -17,10 +17,10 @@ __repository__ = "https://github.com/L-Nafaryus/anisotropy"
|
||||
###
|
||||
# Environment
|
||||
##
|
||||
import os
|
||||
from os import path
|
||||
from os import path, environ
|
||||
|
||||
PROJECT = path.abspath(path.dirname(__file__))
|
||||
|
||||
PROJECT = path.abspath(path.dirname(__file__))
|
||||
TMP = "/tmp/anisotropy"
|
||||
|
||||
env = {
|
||||
@ -33,10 +33,12 @@ env = {
|
||||
"DB_FILE": "anisotropy.db"
|
||||
}
|
||||
|
||||
|
||||
def loadEnv():
|
||||
prefix = "ANISOTROPY_"
|
||||
|
||||
for k, v in env.items():
|
||||
os.environ[f"{ prefix }{ k }"] = v
|
||||
environ[f"{ prefix }{ k }"] = v
|
||||
|
||||
del os, path, PROJECT, TMP
|
||||
|
||||
del path, PROJECT, TMP
|
||||
|
@ -1,3 +0,0 @@
|
||||
# Example of anisotropy bashrc entries (modify it)
|
||||
export PATH="${HOME}/programs/salome/SALOME-9.7.0-MPI:${PATH}"
|
||||
source "${HOME}/programs/OpenFOAM/OpenFOAM-v2012/etc/bashrc"
|
@ -1,50 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# This file is part of anisotropy.
|
||||
# License: GNU GPL version 3, see the file "LICENSE" for details.
|
||||
|
||||
[logger]
|
||||
name = "anisotropy"
|
||||
format = "[ %(levelname)s ] %(message)s"
|
||||
|
||||
[base]
|
||||
simple = true
|
||||
bodyCentered = true
|
||||
faceCentered = true
|
||||
|
||||
[[structures]]
|
||||
type = "simple"
|
||||
theta = [0.01, 0.28]
|
||||
thetaStep = 0.01
|
||||
directions = [
|
||||
[1, 0, 0],
|
||||
[0, 0, 1],
|
||||
[1, 1, 1]
|
||||
]
|
||||
r0 = 1
|
||||
filletsEnabled = true
|
||||
|
||||
[[structures]]
|
||||
type = "bodyCentered"
|
||||
theta = [0.01, 0.17]
|
||||
thetaStep = 0.01
|
||||
directions = [
|
||||
[1, 0, 0],
|
||||
[0, 0, 1],
|
||||
[1, 1, 1]
|
||||
]
|
||||
r0 = 1
|
||||
filletsEnabled = true
|
||||
|
||||
[[structures]]
|
||||
type = "faceCentered"
|
||||
theta = [0.01, 0.12]
|
||||
thetaStep = 0.01
|
||||
directions = [
|
||||
[1, 0, 0],
|
||||
[0, 0, 1],
|
||||
[1, 1, 1]
|
||||
]
|
||||
r0 = 1
|
||||
filletsEnabled = true
|
||||
|
||||
|
@ -3,4 +3,6 @@
|
||||
# License: GNU GPL version 3, see the file "LICENSE" for details.
|
||||
|
||||
from .config import Config, DefaultConfig
|
||||
from .parallel import ParallelRunner
|
||||
from .runner import UltimateRunner
|
||||
from .postProcess import PostProcess
|
||||
|
@ -218,7 +218,7 @@ def compute(path, configFile, nprocs, stage, overwrite, params, verbose, executi
|
||||
count = True,
|
||||
help = "Increase verbose level"
|
||||
)
|
||||
def gui(verbose):
|
||||
def gui(path, verbose):
|
||||
import anisotropy
|
||||
from anisotropy.core.utils import setupLogger
|
||||
from anisotropy.gui import app
|
||||
|
72
anisotropy/core/parallel.py
Normal file
@ -0,0 +1,72 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# This file is part of anisotropy.
|
||||
# License: GNU GPL version 3, see the file "LICENSE" for details.
|
||||
|
||||
|
||||
from multiprocessing import Queue, Process
|
||||
import dill
|
||||
|
||||
|
||||
class ParallelRunner(object):
|
||||
def __init__(self, nprocs: int = 1, daemon: bool = True):
|
||||
self.nprocs = nprocs
|
||||
self.daemon = daemon
|
||||
|
||||
self.processes = []
|
||||
self.queueInput = Queue(maxsize = 1)
|
||||
self.queueOutput = Queue()
|
||||
|
||||
self.__pos = -1
|
||||
self.output = []
|
||||
|
||||
def append(self, command, args = [], kwargs = {}):
|
||||
self.__pos += 1
|
||||
self.queueInput.put(dill.dumps((self.__pos, command, args, kwargs)))
|
||||
|
||||
def extend(self, commands: list, args: list = [], kwargs: list = []):
|
||||
for command, cargs, ckwargs in zip(commands, args, kwargs):
|
||||
self.append(command, cargs, ckwargs)
|
||||
|
||||
@staticmethod
|
||||
def queueRelease(queueInput, queueOutput):
|
||||
while True:
|
||||
pos, command, args, kwargs = dill.loads(queueInput.get())
|
||||
|
||||
if pos is None or command is None:
|
||||
break
|
||||
|
||||
output = command(*args, **kwargs)
|
||||
|
||||
queueOutput.put((pos, output))
|
||||
|
||||
def start(self):
|
||||
for n in range(self.nprocs):
|
||||
self.processes.append(Process(
|
||||
target = self.queueRelease,
|
||||
args = (self.queueInput, self.queueOutput),
|
||||
name = f"worker-{ n + 1 }"
|
||||
))
|
||||
|
||||
for proc in self.processes:
|
||||
proc.daemon = self.daemon
|
||||
proc.start()
|
||||
|
||||
def wait(self):
|
||||
for _ in range(self.nprocs):
|
||||
self.append(None)
|
||||
|
||||
self.output = [ [] for _ in range(self.queueOutput.qsize()) ]
|
||||
|
||||
for _ in range(self.queueOutput.qsize()):
|
||||
pos, output = self.queueOutput.get()
|
||||
self.output[pos] = output
|
||||
|
||||
for proc in self.processes:
|
||||
proc.join()
|
||||
|
||||
self.__pos = -1
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -11,7 +11,8 @@ from anisotropy.core.config import DefaultConfig
|
||||
import logging
|
||||
|
||||
from anisotropy.core.postProcess import PostProcess
|
||||
from anisotropy.core.utils import ParallelRunner, Timer
|
||||
from anisotropy.core.utils import Timer
|
||||
from anisotropy.core.parallel import ParallelRunner
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
@ -3,14 +3,10 @@
|
||||
# License: GNU GPL version 3, see the file "LICENSE" for details.
|
||||
|
||||
import logging
|
||||
|
||||
from multiprocessing import Queue, Process, cpu_count
|
||||
import dill
|
||||
import socket
|
||||
import copy
|
||||
import time
|
||||
from types import FunctionType
|
||||
import os
|
||||
|
||||
|
||||
class CustomFormatter(logging.Formatter):
|
||||
def __init__(self, colors: bool = True):
|
||||
@ -34,7 +30,7 @@ class CustomFormatter(logging.Formatter):
|
||||
return formats.get(level)
|
||||
|
||||
def format(self, record):
|
||||
info = "[%(levelname)s %(processName)s %(asctime)s %(funcName)s]" # [ %(processName)s ]
|
||||
info = "[%(levelname)s %(processName)s %(asctime)s %(funcName)s]" # [ %(processName)s ]
|
||||
msg = " %(message)s"
|
||||
|
||||
if self.colors:
|
||||
@ -121,7 +117,7 @@ class struct:
|
||||
def deepupdate(target, src):
|
||||
for k, v in src.items():
|
||||
if isinstance(v, dict):
|
||||
if not k in target:
|
||||
if k not in target:
|
||||
target[k] = copy.deepcopy(v)
|
||||
|
||||
else:
|
||||
@ -130,6 +126,7 @@ def deepupdate(target, src):
|
||||
else:
|
||||
target[k] = copy.copy(v)
|
||||
|
||||
|
||||
def collapse(source, key = None, level = 0, sep = "_"):
|
||||
if isinstance(source, dict) and source:
|
||||
level = level + 1
|
||||
@ -138,7 +135,7 @@ def collapse(source, key = None, level = 0, sep = "_"):
|
||||
for k, v in source.items():
|
||||
ret, lvl = collapse(v, k, level)
|
||||
|
||||
for kk,vv in ret.items():
|
||||
for kk, vv in ret.items():
|
||||
if level == lvl:
|
||||
newkey = k
|
||||
|
||||
@ -156,6 +153,7 @@ def collapse(source, key = None, level = 0, sep = "_"):
|
||||
else:
|
||||
return { key: source }, level
|
||||
|
||||
|
||||
def expand(source, sep = "_"):
|
||||
res = {}
|
||||
|
||||
@ -208,68 +206,3 @@ class Timer(object):
|
||||
|
||||
def elapsed(self):
|
||||
return time.monotonic() - self.start
|
||||
|
||||
|
||||
class ParallelRunner(object):
|
||||
def __init__(self, nprocs: int = 1, daemon: bool = True):
|
||||
self.nprocs = nprocs
|
||||
self.daemon = daemon
|
||||
|
||||
self.processes = []
|
||||
self.queueInput = Queue(maxsize = 1)
|
||||
self.queueOutput = Queue()
|
||||
|
||||
self.__pos = -1
|
||||
self.output = []
|
||||
|
||||
def append(self, command, args = [], kwargs = {}):
|
||||
self.__pos += 1
|
||||
self.queueInput.put(dill.dumps((self.__pos, command, args, kwargs)))
|
||||
|
||||
def extend(self, commands: list, args: list = [], kwargs: list = []):
|
||||
for command, cargs, ckwargs in zip(commands, args, kwargs):
|
||||
self.append(command, cargs, ckwargs)
|
||||
|
||||
@staticmethod
|
||||
def queueRelease(queueInput, queueOutput):
|
||||
while True:
|
||||
pos, command, args, kwargs = dill.loads(queueInput.get())
|
||||
|
||||
if pos is None or command is None:
|
||||
break
|
||||
|
||||
output = command(*args, **kwargs)
|
||||
|
||||
queueOutput.put((pos, output))
|
||||
|
||||
def start(self):
|
||||
for n in range(self.nprocs):
|
||||
self.processes.append(Process(
|
||||
target = self.queueRelease,
|
||||
args = (self.queueInput, self.queueOutput),
|
||||
name = f"worker-{ n + 1 }"
|
||||
))
|
||||
|
||||
for proc in self.processes:
|
||||
proc.daemon = self.daemon
|
||||
proc.start()
|
||||
|
||||
def wait(self):
|
||||
for _ in range(self.nprocs):
|
||||
self.append(None)
|
||||
|
||||
self.output = [ [] for _ in range(self.queueOutput.qsize()) ]
|
||||
|
||||
for _ in range(self.queueOutput.qsize()):
|
||||
pos, output = self.queueOutput.get()
|
||||
self.output[pos] = output
|
||||
|
||||
for proc in self.processes:
|
||||
proc.join()
|
||||
|
||||
self.__pos = -1
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -1,3 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# This file is part of anisotropy.
|
||||
# License: GNU GPL version 3, see the file "LICENSE" for details.
|
||||
|
||||
from .main import app
|
||||
|
||||
|
@ -1,3 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# This file is part of anisotropy.
|
||||
# License: GNU GPL version 3, see the file "LICENSE" for details.
|
||||
|
||||
from dash import html
|
||||
from dash import dcc
|
||||
|
@ -1,3 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# This file is part of anisotropy.
|
||||
# License: GNU GPL version 3, see the file "LICENSE" for details.
|
||||
|
||||
import dash
|
||||
import dash_bootstrap_components as dbc
|
||||
|
@ -1,3 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# This file is part of anisotropy.
|
||||
# License: GNU GPL version 3, see the file "LICENSE" for details.
|
||||
|
||||
from dash import html
|
||||
from dash import dcc
|
||||
|
@ -1,3 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# This file is part of anisotropy.
|
||||
# License: GNU GPL version 3, see the file "LICENSE" for details.
|
||||
|
||||
from dash.dash_table import DataTable
|
||||
from dash import html
|
||||
|
@ -1,3 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# This file is part of anisotropy.
|
||||
# License: GNU GPL version 3, see the file "LICENSE" for details.
|
||||
|
||||
from dash import html
|
||||
from dash import dcc
|
||||
|
@ -1,3 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# This file is part of anisotropy.
|
||||
# License: GNU GPL version 3, see the file "LICENSE" for details.
|
||||
|
||||
minWidth = {
|
||||
"min-width": "200px",
|
||||
@ -47,10 +50,10 @@ misc = {
|
||||
}
|
||||
|
||||
logo = {
|
||||
"color": "#ffffff",
|
||||
"color": "#ffffff",
|
||||
"text-align": "center"
|
||||
}
|
||||
|
||||
white = {
|
||||
"color": "#ffffff"
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,10 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# This file is part of anisotropy.
|
||||
# License: GNU GPL version 3, see the file "LICENSE" for details.
|
||||
|
||||
def getSize(bytes):
|
||||
for unit in ["", "K", "M", "G", "T", "P"]:
|
||||
if bytes < 1024:
|
||||
return f"{bytes:.2f} {unit}iB"
|
||||
|
||||
bytes /= 1024
|
||||
bytes /= 1024
|
||||
|
@ -20,6 +20,7 @@ help:
|
||||
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
|
||||
%: Makefile
|
||||
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
||||
[ -d "$(BUILDDIR)/html" ] && cp -vf "$(BUILDDIR)/html" anisotropy/
|
||||
|
||||
update:
|
||||
@$(SPHINXAPIDOC) -f -o "$(SOURCEDIR)" "$(PROJECTDIR)"
|
Before Width: | Height: | Size: 228 KiB After Width: | Height: | Size: 228 KiB |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 284 KiB After Width: | Height: | Size: 284 KiB |
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 228 KiB After Width: | Height: | Size: 228 KiB |
0
doc/source/templates/.gitkeep
Normal file
117
poetry.lock
generated
@ -138,7 +138,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
||||
name = "flake8"
|
||||
version = "4.0.1"
|
||||
description = "the modular source code checker: pep8 pyflakes and co"
|
||||
category = "main"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.6"
|
||||
|
||||
@ -258,7 +258,7 @@ setuptools_scm = ">=4"
|
||||
name = "mccabe"
|
||||
version = "0.6.1"
|
||||
description = "McCabe checker, plugin for flake8"
|
||||
category = "main"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = "*"
|
||||
|
||||
@ -355,6 +355,17 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
||||
[package.extras]
|
||||
dev = ["pre-commit", "tox"]
|
||||
|
||||
[[package]]
|
||||
name = "psutil"
|
||||
version = "5.9.0"
|
||||
description = "Cross-platform lib for process and system monitoring in Python."
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
||||
|
||||
[package.extras]
|
||||
test = ["ipaddress", "mock", "unittest2", "enum34", "pywin32", "wmi"]
|
||||
|
||||
[[package]]
|
||||
name = "py"
|
||||
version = "1.11.0"
|
||||
@ -367,7 +378,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
||||
name = "pycodestyle"
|
||||
version = "2.8.0"
|
||||
description = "Python style guide checker"
|
||||
category = "main"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
||||
|
||||
@ -386,7 +397,7 @@ stdlib-list = "*"
|
||||
name = "pyflakes"
|
||||
version = "2.4.0"
|
||||
description = "passive checker of Python programs"
|
||||
category = "main"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
||||
|
||||
@ -417,34 +428,6 @@ category = "main"
|
||||
optional = false
|
||||
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
|
||||
|
||||
[[package]]
|
||||
name = "pyqt5"
|
||||
version = "5.15.6"
|
||||
description = "Python bindings for the Qt cross platform application toolkit"
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.6"
|
||||
|
||||
[package.dependencies]
|
||||
PyQt5-Qt5 = ">=5.15.2"
|
||||
PyQt5-sip = ">=12.8,<13"
|
||||
|
||||
[[package]]
|
||||
name = "pyqt5-qt5"
|
||||
version = "5.15.2"
|
||||
description = "The subset of a Qt installation needed by PyQt5."
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = "*"
|
||||
|
||||
[[package]]
|
||||
name = "pyqt5-sip"
|
||||
version = "12.9.0"
|
||||
description = "The sip module support for PyQt5"
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.5"
|
||||
|
||||
[[package]]
|
||||
name = "pytest"
|
||||
version = "6.2.5"
|
||||
@ -763,12 +746,13 @@ PyYAML = ">=3.10"
|
||||
|
||||
[extras]
|
||||
analyze = []
|
||||
docs = []
|
||||
doc = []
|
||||
gui = []
|
||||
|
||||
[metadata]
|
||||
lock-version = "1.1"
|
||||
python-versions = ">=3.9,<3.11"
|
||||
content-hash = "47b4c70e61dfa848eff69c0edcaaf59db6eac989a4635994ee02ec96a9f05754"
|
||||
content-hash = "700a4aa9c7be83a1f2279035f74714daef385aa287d25a3d7bcd3c12d09cfa6a"
|
||||
|
||||
[metadata.files]
|
||||
alabaster = [
|
||||
@ -1176,6 +1160,35 @@ pluggy = [
|
||||
{file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"},
|
||||
{file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"},
|
||||
]
|
||||
psutil = [
|
||||
{file = "psutil-5.9.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:55ce319452e3d139e25d6c3f85a1acf12d1607ddedea5e35fb47a552c051161b"},
|
||||
{file = "psutil-5.9.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:7336292a13a80eb93c21f36bde4328aa748a04b68c13d01dfddd67fc13fd0618"},
|
||||
{file = "psutil-5.9.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:cb8d10461c1ceee0c25a64f2dd54872b70b89c26419e147a05a10b753ad36ec2"},
|
||||
{file = "psutil-5.9.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:7641300de73e4909e5d148e90cc3142fb890079e1525a840cf0dfd39195239fd"},
|
||||
{file = "psutil-5.9.0-cp27-none-win32.whl", hash = "sha256:ea42d747c5f71b5ccaa6897b216a7dadb9f52c72a0fe2b872ef7d3e1eacf3ba3"},
|
||||
{file = "psutil-5.9.0-cp27-none-win_amd64.whl", hash = "sha256:ef216cc9feb60634bda2f341a9559ac594e2eeaadd0ba187a4c2eb5b5d40b91c"},
|
||||
{file = "psutil-5.9.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:90a58b9fcae2dbfe4ba852b57bd4a1dded6b990a33d6428c7614b7d48eccb492"},
|
||||
{file = "psutil-5.9.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff0d41f8b3e9ebb6b6110057e40019a432e96aae2008951121ba4e56040b84f3"},
|
||||
{file = "psutil-5.9.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:742c34fff804f34f62659279ed5c5b723bb0195e9d7bd9907591de9f8f6558e2"},
|
||||
{file = "psutil-5.9.0-cp310-cp310-win32.whl", hash = "sha256:8293942e4ce0c5689821f65ce6522ce4786d02af57f13c0195b40e1edb1db61d"},
|
||||
{file = "psutil-5.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:9b51917c1af3fa35a3f2dabd7ba96a2a4f19df3dec911da73875e1edaf22a40b"},
|
||||
{file = "psutil-5.9.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3d00a664e31921009a84367266b35ba0aac04a2a6cad09c550a89041034d19a0"},
|
||||
{file = "psutil-5.9.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7779be4025c540d1d65a2de3f30caeacc49ae7a2152108adeaf42c7534a115ce"},
|
||||
{file = "psutil-5.9.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:072664401ae6e7c1bfb878c65d7282d4b4391f1bc9a56d5e03b5a490403271b5"},
|
||||
{file = "psutil-5.9.0-cp37-cp37m-win32.whl", hash = "sha256:df2c8bd48fb83a8408c8390b143c6a6fa10cb1a674ca664954de193fdcab36a9"},
|
||||
{file = "psutil-5.9.0-cp37-cp37m-win_amd64.whl", hash = "sha256:1d7b433519b9a38192dfda962dd8f44446668c009833e1429a52424624f408b4"},
|
||||
{file = "psutil-5.9.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c3400cae15bdb449d518545cbd5b649117de54e3596ded84aacabfbb3297ead2"},
|
||||
{file = "psutil-5.9.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b2237f35c4bbae932ee98902a08050a27821f8f6dfa880a47195e5993af4702d"},
|
||||
{file = "psutil-5.9.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1070a9b287846a21a5d572d6dddd369517510b68710fca56b0e9e02fd24bed9a"},
|
||||
{file = "psutil-5.9.0-cp38-cp38-win32.whl", hash = "sha256:76cebf84aac1d6da5b63df11fe0d377b46b7b500d892284068bacccf12f20666"},
|
||||
{file = "psutil-5.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:3151a58f0fbd8942ba94f7c31c7e6b310d2989f4da74fcbf28b934374e9bf841"},
|
||||
{file = "psutil-5.9.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:539e429da49c5d27d5a58e3563886057f8fc3868a5547b4f1876d9c0f007bccf"},
|
||||
{file = "psutil-5.9.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58c7d923dc209225600aec73aa2c4ae8ea33b1ab31bc11ef8a5933b027476f07"},
|
||||
{file = "psutil-5.9.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3611e87eea393f779a35b192b46a164b1d01167c9d323dda9b1e527ea69d697d"},
|
||||
{file = "psutil-5.9.0-cp39-cp39-win32.whl", hash = "sha256:4e2fb92e3aeae3ec3b7b66c528981fd327fb93fd906a77215200404444ec1845"},
|
||||
{file = "psutil-5.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:7d190ee2eaef7831163f254dc58f6d2e2a22e27382b936aab51c835fc080c3d3"},
|
||||
{file = "psutil-5.9.0.tar.gz", hash = "sha256:869842dbd66bb80c3217158e629d6fceaecc3a3166d3d1faee515b05dd26ca25"},
|
||||
]
|
||||
py = [
|
||||
{file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"},
|
||||
{file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"},
|
||||
@ -1204,42 +1217,6 @@ pyparsing = [
|
||||
{file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"},
|
||||
{file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"},
|
||||
]
|
||||
pyqt5 = [
|
||||
{file = "PyQt5-5.15.6-cp36-abi3-macosx_10_13_x86_64.whl", hash = "sha256:33ced1c876f6a26e7899615a5a4efef2167c263488837c7beed023a64cebd051"},
|
||||
{file = "PyQt5-5.15.6-cp36-abi3-manylinux1_x86_64.whl", hash = "sha256:9d6efad0377aa78bf081a20ac752ce86096ded18f04c592d98f5b92dc879ad0a"},
|
||||
{file = "PyQt5-5.15.6-cp36-abi3-win32.whl", hash = "sha256:9d2dcdaf82263ae56023410a7af15d1fd746c8e361733a7d0d1bd1f004ec2793"},
|
||||
{file = "PyQt5-5.15.6-cp36-abi3-win_amd64.whl", hash = "sha256:f411ecda52e488e1d3c5cce7563e1b2ca9cf0b7531e3c25b03d9a7e56e07e7fc"},
|
||||
{file = "PyQt5-5.15.6.tar.gz", hash = "sha256:80343bcab95ffba619f2ed2467fd828ffeb0a251ad7225be5fc06dcc333af452"},
|
||||
]
|
||||
pyqt5-qt5 = [
|
||||
{file = "PyQt5_Qt5-5.15.2-py3-none-macosx_10_13_intel.whl", hash = "sha256:76980cd3d7ae87e3c7a33bfebfaee84448fd650bad6840471d6cae199b56e154"},
|
||||
{file = "PyQt5_Qt5-5.15.2-py3-none-manylinux2014_x86_64.whl", hash = "sha256:1988f364ec8caf87a6ee5d5a3a5210d57539988bf8e84714c7d60972692e2f4a"},
|
||||
{file = "PyQt5_Qt5-5.15.2-py3-none-win32.whl", hash = "sha256:9cc7a768b1921f4b982ebc00a318ccb38578e44e45316c7a4a850e953e1dd327"},
|
||||
{file = "PyQt5_Qt5-5.15.2-py3-none-win_amd64.whl", hash = "sha256:750b78e4dba6bdf1607febedc08738e318ea09e9b10aea9ff0d73073f11f6962"},
|
||||
]
|
||||
pyqt5-sip = [
|
||||
{file = "PyQt5_sip-12.9.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6d5bca2fc222d58e8093ee8a81a6e3437067bb22bc3f86d06ec8be721e15e90a"},
|
||||
{file = "PyQt5_sip-12.9.0-cp310-cp310-manylinux1_x86_64.whl", hash = "sha256:d59af63120d1475b2bf94fe8062610720a9be1e8940ea146c7f42bb449d49067"},
|
||||
{file = "PyQt5_sip-12.9.0-cp310-cp310-win32.whl", hash = "sha256:0fc9aefacf502696710b36cdc9fa2a61487f55ee883dbcf2c2a6477e261546f7"},
|
||||
{file = "PyQt5_sip-12.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:485972daff2fb0311013f471998f8ec8262ea381bded244f9d14edaad5f54271"},
|
||||
{file = "PyQt5_sip-12.9.0-cp36-cp36m-macosx_10_6_intel.whl", hash = "sha256:d85002238b5180bce4b245c13d6face848faa1a7a9e5c6e292025004f2fd619a"},
|
||||
{file = "PyQt5_sip-12.9.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:83c3220b1ca36eb8623ba2eb3766637b19eb0ce9f42336ad8253656d32750c0a"},
|
||||
{file = "PyQt5_sip-12.9.0-cp36-cp36m-win32.whl", hash = "sha256:d8b2bdff7bbf45bc975c113a03b14fd669dc0c73e1327f02706666a7dd51a197"},
|
||||
{file = "PyQt5_sip-12.9.0-cp36-cp36m-win_amd64.whl", hash = "sha256:69a3ad4259172e2b1aa9060de211efac39ddd734a517b1924d9c6c0cc4f55f96"},
|
||||
{file = "PyQt5_sip-12.9.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:42274a501ab4806d2c31659170db14c282b8313d2255458064666d9e70d96206"},
|
||||
{file = "PyQt5_sip-12.9.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:6a8701892a01a5a2a4720872361197cc80fdd5f49c8482d488ddf38c9c84f055"},
|
||||
{file = "PyQt5_sip-12.9.0-cp37-cp37m-win32.whl", hash = "sha256:ac57d796c78117eb39edd1d1d1aea90354651efac9d3590aac67fa4983f99f1f"},
|
||||
{file = "PyQt5_sip-12.9.0-cp37-cp37m-win_amd64.whl", hash = "sha256:4347bd81d30c8e3181e553b3734f91658cfbdd8f1a19f254777f906870974e6d"},
|
||||
{file = "PyQt5_sip-12.9.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c446971c360a0a1030282a69375a08c78e8a61d568bfd6dab3dcc5cf8817f644"},
|
||||
{file = "PyQt5_sip-12.9.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:fc43f2d7c438517ee33e929e8ae77132749c15909afab6aeece5fcf4147ffdb5"},
|
||||
{file = "PyQt5_sip-12.9.0-cp38-cp38-win32.whl", hash = "sha256:055581c6fed44ba4302b70eeb82e979ff70400037358908f251cd85cbb3dbd93"},
|
||||
{file = "PyQt5_sip-12.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:c5216403d4d8d857ec4a61f631d3945e44fa248aa2415e9ee9369ab7c8a4d0c7"},
|
||||
{file = "PyQt5_sip-12.9.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a25b9843c7da6a1608f310879c38e6434331aab1dc2fe6cb65c14f1ecf33780e"},
|
||||
{file = "PyQt5_sip-12.9.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:dd05c768c2b55ffe56a9d49ce6cc77cdf3d53dbfad935258a9e347cbfd9a5850"},
|
||||
{file = "PyQt5_sip-12.9.0-cp39-cp39-win32.whl", hash = "sha256:4f8e05fe01d54275877c59018d8e82dcdd0bc5696053a8b830eecea3ce806121"},
|
||||
{file = "PyQt5_sip-12.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:b09f4cd36a4831229fb77c424d89635fa937d97765ec90685e2f257e56a2685a"},
|
||||
{file = "PyQt5_sip-12.9.0.tar.gz", hash = "sha256:d3e4489d7c2b0ece9d203ae66e573939f7f60d4d29e089c9f11daa17cfeaae32"},
|
||||
]
|
||||
pytest = [
|
||||
{file = "pytest-6.2.5-py3-none-any.whl", hash = "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134"},
|
||||
{file = "pytest-6.2.5.tar.gz", hash = "sha256:131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89"},
|
||||
|
@ -19,6 +19,8 @@ classifiers = [
|
||||
packages = [
|
||||
{ include = "anisotropy" }
|
||||
]
|
||||
include = ["doc"]
|
||||
exclude = ["doc/source", "doc/Makefile"]
|
||||
|
||||
[tool.poetry.scripts]
|
||||
anisotropy = "anisotropy.core.cli:anisotropy"
|
||||
@ -32,8 +34,8 @@ pandas = "^1.3.4"
|
||||
matplotlib = "^3.5.0"
|
||||
pyfoam = "^2021.6"
|
||||
click = "^8.0.3"
|
||||
pyqt5 = "^5.15.6"
|
||||
dill = "^0.3.4"
|
||||
psutil = "^5.9.0"
|
||||
|
||||
[tool.poetry.dev-dependencies]
|
||||
pytest = "^6.2.5"
|
||||
@ -48,7 +50,8 @@ pytest-json-report = "^1.4.1"
|
||||
|
||||
[tool.poetry.extras]
|
||||
analyze = ["jupyterlab", "seaborn", "sklearn"]
|
||||
docs = ["Sphinx", "sphinx-rtd-theme", "pydeps", "peewee-erd"]
|
||||
doc = ["Sphinx", "sphinx-rtd-theme", "pydeps", "peewee-erd"]
|
||||
gui = ["dash", "dash-bootstrap-components"]
|
||||
|
||||
[build-system]
|
||||
requires = ["poetry-core>=1.0.0"]
|
||||
|