Restructuring for package to submit to PyPA.

This commit is contained in:
Kenneth Jao 2021-09-24 09:42:05 -04:00
parent 4f23f0c43f
commit d748b25040
15 changed files with 1346 additions and 1428 deletions

View File

@ -1,3 +1,3 @@
[build-system]
requires = ["setuptools >= 42", "wheel", "Cython", "numpy"]
requires = ["setuptools >= 42", "wheel", "numpy"]
build-backend = "setuptools.build_meta"

View File

@ -1,24 +1,40 @@
alabaster==0.7.12
Babel==2.9.1
bleach==4.1.0
build==0.7.0
certifi==2021.5.30
cffi==1.14.6
charset-normalizer==2.0.6
colorama==0.4.4
cryptography==3.4.8
cycler==0.10.0
Cython==0.29.24
docutils==0.17.1
idna==3.2
imagesize==1.2.0
importlib-metadata==4.8.1
jeepney==0.7.1
Jinja2==3.0.1
keyring==23.2.1
kiwisolver==1.3.2
MarkupSafe==2.0.1
matplotlib==3.4.3
numpy==1.21.2
packaging==21.0
pep517==0.11.0
Pillow==8.3.2
pkginfo==1.7.1
pycparser==2.20
Pygments==2.10.0
pyparsing==2.4.7
python-dateutil==2.8.2
pytz==2021.1
readme-renderer==29.0
requests==2.26.0
requests-toolbelt==0.9.1
rfc3986==1.5.0
scipy==1.7.1
SecretStorage==3.3.1
six==1.16.0
snowballstemmer==2.1.0
Sphinx==4.2.0
@ -29,5 +45,9 @@ sphinxcontrib-htmlhelp==2.0.0
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-qthelp==1.0.3
sphinxcontrib-serializinghtml==1.1.5
-e git+git@github.com:ksjdragon/packsim.git@e2f25182310c1f9a950df55c0219165366466e9b#egg=squish
tomli==1.2.1
tqdm==4.62.3
twine==3.4.2
urllib3==1.26.6
webencodings==0.5.1
zipp==3.5.0

View File

@ -1,10 +1,10 @@
[metadata]
name = squish-ksjdragon
name = squish
version = 0.1
author = Kenneth Jao
author_email = ksjdragon@gmail.com
description = squish is Python program which perform simulations for the flow of 'soft' or 'compressible' objects under some energy in a periodic domain.
long_description = file: README.md
long_description = file: README.rst
long_description_content_type = text/markdown
url = https://github.com/ksjdragon/squish
project_urls =
@ -18,19 +18,13 @@ classifiers =
[options]
zip_safe = False
package_dir =
= src
pacakges = find:
packages = squish
python_requires = >= 3.8
install_requires =
numpy == 1.21.2
scipy == 1.7.1
matplotlib == 3.4.3
[options.packages.find]
where = src
[options.entry_points]
console_scripts =
squish = squish.squish:pre

View File

@ -1,20 +1,31 @@
from setuptools import Extension, setup
from Cython.Build import cythonize
import numpy
ext_modules = [
Extension(
"_squish",
["src/_squish/_squish.pyx"],
extra_compile_args=['-fopenmp'],
extra_link_args=['-fopenmp']
)
try:
from Cython.Build import cythonize
USE_CYTHON = True
except ImportError:
USE_CYTHON = False
if USE_CYTHON:
ext_modules = cythonize([
Extension(
"_squish",
["squish/_squish/_squish.pyx"],
extra_compile_args=['-fopenmp'],
extra_link_args=['-fopenmp']
)
],
compiler_directives={
'language_level': 3, 'boundscheck' : False, 'wraparound': False, 'cdivision' : True
})
else:
ext_modules = [
Extension('squish._squish', ["squish/_squish/_squish.c"])
]
#annotate='fullc'
setup(
name="squish",
ext_modules = cythonize(ext_modules, compiler_directives={
'language_level': 3, 'boundscheck' : False, 'wraparound': False, 'cdivision' : True
}),
include_dirs = [numpy.get_include()]
ext_modules = ext_modules,
include_dirs = [numpy.get_include()]
)

File diff suppressed because it is too large Load Diff

View File

@ -40,7 +40,7 @@ cdef class AreaEnergy(VoronoiContainer):
if i < self.n:
energy += xi.cache.energy(&xi, NAN)
for j in prange(xi.edge_num(&xi)):
for j in range(xi.edge_num(&xi)):
em, ep = e.prev(&e), e.next(&e)
vdiff = em.origin(&em)
vdiff.self.vsub(&vdiff, ep.origin(&ep))
@ -71,7 +71,7 @@ cdef class AreaEnergy(VoronoiContainer):
xi = init.Site(i, &info)
e = xi.edge(&xi)
edge_set = init.BitSet(num_edges)
for j in prange(xi.edge_num(&xi)): # Looping through site edges.
for j in range(xi.edge_num(&xi)): # Looping through site edges.
f = e
while True: # Circling this vertex.
if not edge_set.add(&edge_set, f.arr_index):
@ -166,7 +166,7 @@ cdef class RadialTEnergy(VoronoiContainer):
for i in prange(self.sites.shape[0], nogil=True):
xi = init.Site(i, &info)
e = xi.edge(&xi)
for j in prange(xi.edge_num(&xi)):
for j in range(xi.edge_num(&xi)):
em = e.prev(&e)
e.cache.H(&e, VoronoiContainer.calc_H(em, e))
t = Calc.phi(e)
@ -186,7 +186,7 @@ cdef class RadialTEnergy(VoronoiContainer):
# For looping again to calculate integrals.
em = xi.edge(&xi)
for j in prange(xi.edge_num(&xi)):
for j in range(xi.edge_num(&xi)):
e = em.next(&em)
B = em.cache.B(&em, NAN)
t, tp = em.cache.phi(&em, NAN), e.cache.phi(&e, NAN)
@ -234,7 +234,7 @@ cdef class RadialTEnergy(VoronoiContainer):
e = xi.edge(&xi)
edge_set = init.BitSet(num_edges)
for j in prange(xi.edge_num(&xi)): # Looping through site edges.
for j in range(xi.edge_num(&xi)): # Looping through site edges.
f = e
while True: # Circling this vertex.
fm = f.prev(&f)

View File

@ -537,7 +537,7 @@ cdef class VoronoiContainer:
for i in prange(self.sites.shape[0], nogil=True):
xi = init.Site(i, &info)
em = xi.edge(&xi)
for j in prange(xi.edge_num(&xi)):
for j in range(xi.edge_num(&xi)):
ep = em.next(&em)
p, q = em.origin(&em), ep.origin(&ep)
la, da = q.copy.vsub(&q, p), p.copy.vsub(&p, xi.vec(&xi)) # vp - vm, vm - xi

View File

@ -2,7 +2,7 @@ from __future__ import annotations
from typing import List, Union, Optional, Iterator, Generator
import pickle, numpy as np
from pathlib import Path
from _squish import AreaEnergy, RadialALEnergy, RadialTEnergy
from ._squish import AreaEnergy, RadialALEnergy, RadialTEnergy
OUTPUT_DIR = Path("squish_output")
OUTPUT_DIR.mkdir(exist_ok=True)

View File

@ -298,7 +298,7 @@ class Search(Simulation):
for i in range(self.count):
# Get to equilibrium.
sim = Flow(self.domain, self.energy, self.thres, self.step_size, self.accel)
sim = Flow(self.domain, self.energy, self.step_size, self.thres, self.accel)
sim.add_frame(new_sites)
sim.run(False, log, log_steps)
@ -382,7 +382,7 @@ class Shrink(Simulation):
while width >= self.stop_width:
# Get to equilibrium.
new_domain = DomainParams(self.domain.n, width, self.domain.h, self.domain.r)
sim = Flow(new_domain, self.energy, self.thres, self.step_size, self.accel)
sim = Flow(new_domain, self.energy, self.step_size, self.thres, self.accel)
sim.add_frame(new_sites)
sim.run(False, log, log_steps)
new_sites = sim[-1].site_arr