Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 7 additions & 11 deletions src/diffpy/__init__.py
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,18 +1,14 @@
#!/usr/bin/env python
##############################################################################
#
# dpx.pdfgetxgui by Simon J. L. Billinge group
# (c) 2012 Trustees of the Columbia University
# in the City of New York. All rights reserved.
# (c) 2012-2025 The Trustees of Columbia University in the City of New York.
# All rights reserved.
#
# File coded by: Xiaohao Yang
# File coded by: Xiaohao Yang and Billinge Group members.
#
# See AUTHORS.txt for a list of people who contributed.
# See LICENSE.txt for license information.
# See GitHub contributions for a more detailed list of contributors.
# https://github.com/diffpy/diffpy.srxplanargui/graphs/contributors
#
# See LICENSE.rst for license information.
#
##############################################################################
"""Blank namespace package."""

__import__("pkg_resources").declare_namespace(__name__)

# End of file
20 changes: 12 additions & 8 deletions src/diffpy/srxplanargui/__init__.py
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,19 +1,23 @@
#!/usr/bin/env python
##############################################################################
#
# dpx.pdfgetxgui by Simon J. L. Billinge group
# (c) 2012 Trustees of the Columbia University
# in the City of New York. All rights reserved.
# (c) 2012-2025 The Trustees of Columbia University in the City of New York.
# All rights reserved.
#
# File coded by: Xiaohao Yang
# File coded by: Xiaohao Yang, Billinge Group members.
#
# See AUTHORS.txt for a list of people who contributed.
# See LICENSE.txt for license information.
# See GitHub contributions for a more detailed list of contributors.
# https://github.com/diffpy/diffpy.srxplanargui/graphs/contributors
#
# See LICENSE.rst for license information.
#
##############################################################################
"""xPDFsuite, a software for PDF transformation and visualization."""

# package version
from diffpy.srxplanargui.version import __version__ # noqa

# obtain version information
# from diffpy.srxplanargui.version import __version__
# silence the pyflakes syntax checker
assert __version__ or True

# End of file
50 changes: 32 additions & 18 deletions src/diffpy/srxplanargui/imageplot.py
Original file line number Diff line number Diff line change
Expand Up @@ -101,38 +101,50 @@ class ImagePlot(HasTraits):
)
avgmask = DelegatesTo(
"srxconfig",
desc=("Mask the pixels too bright or too dark compared to"
" the average intensity at the similar diffraction angle"),
desc=(
"Mask the pixels too bright or too dark compared to"
" the average intensity at the similar diffraction angle"
),
)
brightpixelr = DelegatesTo(
"srxconfig",
desc=("Pixels with intensity large than this relative threshold"
" (times the local environment) value will be masked"),
desc=(
"Pixels with intensity large than this relative threshold"
" (times the local environment) value will be masked"
),
)
brightpixelsize = DelegatesTo(
"srxconfig", desc="Size of testing area for detecting bright pixels"
)
darkpixelr = DelegatesTo(
"srxconfig",
desc=("Pixels with intensity less than this relative threshold"
" (times the local environment) value will be masked"),
desc=(
"Pixels with intensity less than this relative threshold"
" (times the local environment) value will be masked"
),
)
avgmaskhigh = DelegatesTo(
"srxconfig",
desc=("Comparing to the average intensity at "
"similar diffraction angle, \npixels with intensity larger than"
" avg_int*high will be masked"),
desc=(
"Comparing to the average intensity at "
"similar diffraction angle, \npixels with intensity larger than"
" avg_int*high will be masked"
),
)
avgmasklow = DelegatesTo(
"srxconfig",
desc=("Comparing to the average intensity at "
"similar diffraction angle, \npixels with intensity less than "
"avg_int*low will be masked"),
desc=(
"Comparing to the average intensity at "
"similar diffraction angle, \npixels with intensity less than "
"avg_int*low will be masked"
),
)
cropedges = DelegatesTo(
"srxconfig",
desc=("The number of pixels masked"
" at each edge (left, right, top, bottom)"),
desc=(
"The number of pixels masked"
" at each edge (left, right, top, bottom)"
),
)

def createPlot(self):
Expand Down Expand Up @@ -231,7 +243,7 @@ def addPointMask(self, ndx, remove=None):
"""Param ndx -- (x,y) float."""
x, y = ndx
r = self.pts - np.array((x, y))
r = np.sum(r ** 2, axis=1)
r = np.sum(r**2, axis=1)
mask = r < ((self.pointmaskradius + 1) ** 2)
mask = mask.reshape(self.staticmask.shape)
if remove:
Expand Down Expand Up @@ -318,9 +330,11 @@ def _enableMaskEditing(self):
self.plot.tools.remove(self.pan)
self.plot.overlays.append(self.lstool)
self.titlebak = self.plot.title
self.plot.title = ("Click: add a vertex; "
"<Ctrl>+Click: remove a vertex; \n "
"<Enter>: finish the selection")
self.plot.title = (
"Click: add a vertex; "
"<Ctrl>+Click: remove a vertex; \n "
"<Enter>: finish the selection"
)
return

def _disableMaskEditing(self):
Expand Down
33 changes: 33 additions & 0 deletions src/diffpy/srxplanargui/srxplanargui_app.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import argparse

from diffpy.srxplanargui.version import __version__ # noqa


def main():
parser = argparse.ArgumentParser(
prog="diffpy.srxplanargui",
description=(
"xPDFsuite, a software for PDF transformation and visualization.\n\n"
"For more information, visit: "
"https://github.com/diffpy/diffpy.srxplanargui/"
),
formatter_class=argparse.RawDescriptionHelpFormatter,
)

parser.add_argument(
"--version",
action="store_true",
help="Show the program's version number and exit",
)

args = parser.parse_args()

if args.version:
print(f"diffpy.srxplanargui {__version__}")
else:
# Default behavior when no arguments are given
parser.print_help()


if __name__ == "__main__":
main()
34 changes: 16 additions & 18 deletions src/diffpy/srxplanargui/version.py
Original file line number Diff line number Diff line change
@@ -1,28 +1,26 @@
#!/usr/bin/env python
##############################################################################
#
# diffpy.srxplanar by DANSE Diffraction group
# Simon J. L. Billinge
# (c) 2010 Trustees of the Columbia University
# in the City of New York. All rights reserved.
# (c) 2012-2025 The Trustees of Columbia University in the City of New York.
# All rights reserved.
#
# File coded by: Xiaohao Yang
# File coded by: Xiaohao Yang, Billinge Group members.
#
# See AUTHORS.txt for a list of people who contributed.
# See LICENSENOTICE.txt for license information.
# See GitHub contributions for a more detailed list of contributors.
# https://github.com/diffpy/diffpy.srxplanargui/graphs/contributors # noqa: E501
#
# See LICENSE.rst for license information.
#
##############################################################################
"""Definition of __version__ and __date__ for this package."""

# obtain version information
from pkg_resources import get_distribution
"""Definition of __version__."""

_pkgname = __name__.rsplit(".", 1)[0]
__version__ = get_distribution(_pkgname).version
# We do not use the other three variables, but can be added back if needed.
# __all__ = ["__date__", "__git_commit__", "__timestamp__", "__version__"]

# we assume that tag_date was used and __version__ ends in YYYYMMDD
__date__ = (
__version__[-8:-4] + "-" + __version__[-4:-2] + "-" + __version__[-2:]
)
# obtain version information
from importlib.metadata import PackageNotFoundError, version

# End of file
try:
__version__ = version("diffpy.srxplanargui")
except PackageNotFoundError:
__version__ = "unknown"
19 changes: 19 additions & 0 deletions tests/conftest.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import json
from pathlib import Path

import pytest


@pytest.fixture
def user_filesystem(tmp_path):
base_dir = Path(tmp_path)
home_dir = base_dir / "home_dir"
home_dir.mkdir(parents=True, exist_ok=True)
cwd_dir = base_dir / "cwd_dir"
cwd_dir.mkdir(parents=True, exist_ok=True)

home_config_data = {"username": "home_username", "email": "home@email.com"}
with open(home_dir / "diffpyconfig.json", "w") as f:
json.dump(home_config_data, f)

yield tmp_path
10 changes: 10 additions & 0 deletions tests/test_version.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
"""Unit tests for __version__.py."""

import diffpy.srxplanargui # noqa


def test_package_version():
"""Ensure the package version is defined and not set to the initial
placeholder."""
assert hasattr(diffpy.srxplanargui, "__version__")
assert diffpy.srxplanargui.__version__ != "0.0.0"
Loading