Skip to content

Make modelclsuter instance work #74

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Aug 16, 2024
Merged

Conversation

stevenhua0320
Copy link
Contributor

No description provided.

@sbillinge
Copy link
Contributor

This is honestly not the best way to "make things work" here. It would be better to write tests for the things and make the tests pass. But I think I am ok with this as I now see that @Ainamacar was bootstrapping (i.e., manually coding) iterable behavior in a python 2 code, but this is built in in python 3, so I think the code could quite easily be refactored and made more simple to run natively in py3, so just "getting it going" by running the old "if name == "main" code snippets, and then running examples to do some real clustering without stressing too much about code refactoring might be a good approach.

We could also use this opportunity to play around with how it could be refactored in py3. Not sure. Thoughts?

@sbillinge sbillinge merged commit 578a972 into diffpy:Cookie Aug 16, 2024
3 checks passed
@stevenhua0320
Copy link
Contributor Author

This is honestly not the best way to "make things work" here. It would be better to write tests for the things and make the tests pass. But I think I am ok with this as I now see that @Ainamacar was bootstrapping (i.e., manually coding) iterable behavior in a python 2 code, but this is built in in python 3, so I think the code could quite easily be refactored and made more simple to run natively in py3, so just "getting it going" by running the old "if name == "main" code snippets, and then running examples to do some real clustering without stressing too much about code refactoring might be a good approach.

We could also use this opportunity to play around with how it could be refactored in py3. Not sure. Thoughts?

In this step I'm actually doing the step of running the old name == "main" code snippets, but then the py2 to py3 issue pops up (numpy float64 object to int issue etc.) So I first fixed them in order to run the examples successfully. And this is this PR's purpose. But I think this is the right approach.
I think our workflow should be

  1. Run name == "main" code snippets, see if there is any errors/problems in the code, make small fixes to let it run, then make PR for that.
  2. Following the name == "main" code snippets, make tests for the important functions. See if there are any function breaking.
  3. Find the affected function, decide whether it is a py2 issue, and decide whether to just fix it or make a refactor to py3.

sbillinge added a commit that referenced this pull request Sep 4, 2024
* Lint check & fix to python3 format (#18)

* lint check and change files from python2 to python3

* pre-commit check for these files

* lint check & change to python3 & pre-commit check (#19)

* lint check & change to python3 & pre-commit check

* [pre-commit.ci] auto fixes from pre-commit hooks

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* lint check and fix print and exception python2 issue (#20)

* lint check and fix python2 print and exception issues (#21)

* lint check and fix python2 print and exception issues

* [pre-commit.ci] auto fixes from pre-commit hooks

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* finish parenthesizing print statements (#24)

* finish parenthesizing print statements

* [pre-commit.ci] auto fixes from pre-commit hooks

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* fix too many leading #, import modules, and unused var (#29)

* requirements (#30)

* fix import module not used & string check (#25)

* fix too many leading "#" in string block (#26)

* lint check, remove unused import modules & remove too many "#". (#27)

* remove unused modules, ambiguous variable name (#28)

* cleaning (#31)

* requirements

* clean out __init__

* replace ###

* ins not none in modelevaluators base

* Copyright (#32)

* requirements

* basefunction

* all the copyright statements

* lint check, fix break import modules, remove unused import modules, remove some # (#33)

* fix break import modules, remove unused import modules, fix docstring length (#34)

* fix formatting issue and typo in copyright (#35)

* clean out inits (#38)

* clean out inits

* [pre-commit.ci] auto fixes from pre-commit hooks

* dataclusters.py, modelevaluators/aicc and modelparts.py

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* peakextraction.py and init (#40)

* move untrack doc and requirement files (#41)

* move untrack doc and requirement files

* add requirement in run.txt

* [pre-commit.ci] auto fixes from pre-commit hooks

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* add pyproject.toml (#42)

* add pyproject.toml

* [pre-commit.ci] auto fixes from pre-commit hooks

* update classifiers pyproject.toml

* Delete setup.py

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* move diffpy files to src dir (#44)

* move diffpy files to src dir

* [pre-commit.ci] auto fixes from pre-commit hooks

* add Luke to authors

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* LICENSE (#45)

* add two LICENSE.rst files into cookiecutter

* fix LICENSE.rst and LICENSE_PDFgui.rst with correct references and year

* resolve pdfdataset.py conflict

---------

Co-authored-by: Simon Billinge <[email protected]>

* add untrack files and add cookiecut.rst news (#46)

* add untrack files and add cookiecut.rst news

* delete README.txt

* fix py2 -> py3, fix broken import, remove deprecation warning (#47)

* fix py2 -> py3, move deprecation warning

* fix search & split in binary files

* fix broken import, remove deprecated pkg_resource (#50)

* change import path to make it work. (#48)

* fix import modules, py2->py3 (#49)

* fix broken import in doc, change README to rst file. (#51)

* fix broken import in doc, change README to rst file.

* fix os getcwd method

* fix p2 to p3 (#52)

* add test for dataclusters (#54)

* add test for dataclusters

* define eq method in dataclusters.py

* change parametrization form

* add one more case and change reference name to actual

* delete comment

* add two more tests for DataClusters class function.

* change in docstring for clearer explanation for clear method, remove duplicated case for testing behavior, remove other tests.

* change clear method docstring into numpydoc format. Delete dtype for numpy array.

* remove block

* Make edition to condition on res, refactor for setdata to make behavior of the test passed.

* change condition on res

* add condition on x and res are incompatible, update test.

* revert change in setdata method.

* Eq tests (#59)

* remove diffpy/srmise tree

* test for eq

* add attributes in eq method (#60)

* Add set data test cases (#61)

* add test cases to test files and make edition to make sure the behavior of the test pass.

* [pre-commit.ci] auto fixes from pre-commit hooks

* change case in test__eq__ to be compatible with the behavior of setdata

* delete text and redundant tests

* tweaking error message in DataClusters

* [pre-commit.ci] auto fixes from pre-commit hooks

* update test for checking implicit attributes for setdata function

* [pre-commit.ci] auto fixes from pre-commit hooks

* update test for setdata function

* update setdata test to right format.

* update to constructor test & make setdata clear function private

* final tweaks to tests by Simon

* fix actual_attribute typo

* final refactor of actual_attr

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Simon Billinge <[email protected]>

* fix arbitrary.py to numpydoc format (#68)

* fix arbitrary.py to numpydoc format

* pre-commit fix

* change start sentence to 'The'

* print things correctly (#71)

* print things correctly

* change to f string

* reduce print to one line

* change createpeak to actualize function (#72)

* fix import and counting to make it work (#74)

* refactor makeclusters to make it work (#73)

* deprecation remove (#78)

* deprecation remove

* fix to right behavior

* Revert "refactor makeclusters to make it work (#73)" (#79)

This reverts commit 3773bcf.

* try out py2 before py3 refactor to make sure correct workflow (#75)

* fix false counting and numpy to int (#80)

* fix false counting and numpy to int

* [pre-commit.ci] auto fixes from pre-commit hooks

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* numpydoc edition (#81)

* change peakextraction function to numpydoc

* pre-commit run

* remove unused import

* numpydoc build (#82)

* numpydoc build on peakstability (#83)

* numpydoc build for ModelCluster (#85)

* numpydoc build for multimodelselection.py (#87)

* numpydoc documentation build for ModelCluster class (#86)

* numpydoc build for pdfdataset (#88)

* numpydoc build for pdfpeakextraction.py (#89)

* numpydoc build for gaussianoverr.py (#91)

* numpydoc build for gaussianoverr.py

* [pre-commit.ci] auto fixes from pre-commit hooks

* fix pre-commit

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* terminationripples.py numpydoc build (#92)

* numpydoc build for gaussian.py (#90)

* numpydoc build for gaussian.py

* [pre-commit.ci] auto fixes from pre-commit hooks

* pre-commit fix

* update for FWHM and maxwidth

* update for starting sentence

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* numpydoc build for base.py (#95)

* numpydoc build for polynomial.py (#97)

* numpydoc build for fromsequence.py (#99)

* numpydoc build for nanospherical.py (#98)

* numpydoc build for base.py in Baseline class (#96)

* numpydoc build for base.py

* [pre-commit.ci] auto fixes from pre-commit hooks

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* numpydoc build for aic.py (#93)

* numpydoc build for aicc.py (#94)

* numpydoc build for ModelCovariance (#84)

* numpydoc build for ModelCovariance

* update format type and fix indentation issue

* numpydoc build for modelparts.py (#100)

* numpydoc build for modelparts.py

* [pre-commit.ci] auto fixes from pre-commit hooks

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* numpydoc build for basefunction.py (#101)

* api workflow build for diffpy.srmise (#102)

* api workflow build for diffpy.srmise

* [pre-commit.ci] auto fixes from pre-commit hooks

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* add changed news (#103)

---------

Co-authored-by: Rundong Hua <[email protected]>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants