Skip to content

Commit

Permalink
Merge branch 'main' into tolerance
Browse files Browse the repository at this point in the history
  • Loading branch information
AdamTheisen authored Feb 14, 2024
2 parents acc437a + 3527a7a commit c133af7
Show file tree
Hide file tree
Showing 20 changed files with 89 additions and 53 deletions.
6 changes: 3 additions & 3 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ jobs:

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
Expand All @@ -57,7 +57,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v1
uses: github/codeql-action/autobuild@v3

# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
Expand All @@ -71,4 +71,4 @@ jobs:
# make release

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1
uses: github/codeql-action/analyze@v3
33 changes: 33 additions & 0 deletions .github/workflows/linting.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: linting

on:
push:
pull_request:
workflow_dispatch:

jobs:
pre-job:
runs-on: ubuntu-latest
outputs:
should_skip: ${{ steps.skip_check.outputs.should_skip }}
steps:
- id: skip_check
uses: fkirc/skip-duplicate-actions@master
with:
concurrent_skipping: 'same_content'
skip_after_successful_duplicate: 'false'
do_not_skip: '["workflow_dispatch", "schedule"]'
linting:
needs: pre-job
runs-on: ubuntu-latest
if: ${{ needs.pre-job.outputs.should_skip != 'true' }}
steps:
- name: Cancel Previous Runs
uses: styfle/[email protected]
with:
access_token: ${{ github.token }}
- uses: actions/checkout@v2
- uses: actions/setup-python@v4
with:
python-version: '3.10'
- uses: pre-commit/[email protected]
33 changes: 8 additions & 25 deletions CONTRIBUTING.rst
Original file line number Diff line number Diff line change
Expand Up @@ -247,39 +247,22 @@ An example:
Code Style
----------

ACT follows PEP8 coding standards. To make sure your code follows the
PEP8 style, you can use a variety of tools that can check for you. Two
popular PEP8 check modules are flake8 and pylint. (Note: ACT's continuous
integration uses flake8).
Py-ART uses pre-commit for linting, which applies a variety of pep8 and other
code style rules.

For more on pep8 style:

- https://www.python.org/dev/peps/pep-0008/

To install flake8::
To install pre-commit hooks for the Py-ART repo::

conda install -c conda-forge flake8
pre-commit install

To use flake8::
Afterwards, pre-commit will run on every commit to the repository. It will
re-format files as neccessary.

flake8 path/to/code/to/check.py

To install pylint::

conda install pylint

To use pylint::

pylint path/to/code/to/check.py

Both of these tools are highly configurable to suit a user's taste. Refer to
the tools documentation for details on this process.

- https://flake8.pycqa.org/en/latest/
- https://www.pylint.org/

Naming Convenction
----------------------------------------
Naming Convention
-----------------

Discovery
~~~~~~~~~
Expand Down
8 changes: 3 additions & 5 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -38,16 +38,14 @@ Please report any issues or feature requests by sumitting an `Issue <https://git
Version 2.0
~~~~~~~~~~~

ACT will soon have a version 2.0 release. This release will contain many function
ACT now has a version 2.0 release. This release contains many function
naming changes such as IO and Discovery module function naming changes. To
prepare for this release, a `v2.0 <https://arm-doe.github.io/ACT/userguide/GUIDE_V2.html>`_
has been provided that explains the changes and how to work with the new syntax.

To test out the release candidate 2.0.0-rc.0 of ACT, use::
The new release is available on both PyPI and conda-forge.

pip install git+https://github.com/ARM-DOE/[email protected]

Please report any bugs of the release candidate to the Issue Tracker mentioned in
Please report any bugs of the 2.0 release to the Issue Tracker mentioned in
the Important Links section below.

Important Links
Expand Down
2 changes: 1 addition & 1 deletion act/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
register_matplotlib_converters()

# Import early so these classes are available to the object
from .qc import QCFilter, QCTests, clean
from .qc import QCFilter, QCTests, clean # noqa

# Import the lazy loaded modules
submodules = [
Expand Down
3 changes: 2 additions & 1 deletion act/io/hysplit.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,8 @@ def read_hysplit(filename, base_year=2000):
var_list.append(variable)

input_df = pd.read_csv(
filename, sep='\s+', index_col=False, names=var_list, skiprows=12) # noqa W605
filename, sep=r'\s+', index_col=False, names=var_list, skiprows=12
) # noqa W605
input_df['year'] = base_year + input_df['year']
input_df['time'] = pd.to_datetime(
input_df[["year", "month", "day", "hour", "minute"]], format='%y%m%d%H%M'
Expand Down
4 changes: 2 additions & 2 deletions act/plotting/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@
import lazy_loader as lazy

# Load colormaps
import cmweather
import cmweather # noqa

# Eagerly load in common
from . import common
from . import common # noqa

__getattr__, __dir__, __all__ = lazy.attach(
__name__,
Expand Down
19 changes: 14 additions & 5 deletions act/utils/data_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,13 @@ def __init__(self, ds):
self._ds = ds

def change_units(
self, variables=None, desired_unit=None, skip_variables=None, skip_standard=True,
verbose=False, raise_error=False
self,
variables=None,
desired_unit=None,
skip_variables=None,
skip_standard=True,
verbose=False,
raise_error=False,
):
"""
Parameters
Expand Down Expand Up @@ -111,10 +116,14 @@ def change_units(
np.core._exceptions.UFuncTypeError,
):
if raise_error:
raise ValueError(f"Unable to convert '{var_name}' to units of '{desired_unit}'.")
raise ValueError(
f"Unable to convert '{var_name}' to units of '{desired_unit}'."
)
elif verbose:
print(f"\n Unable to convert '{var_name}' to units of '{desired_unit}'. "
f"Skipping unit converstion for '{var_name}'.\n")
print(
f"\n Unable to convert '{var_name}' to units of '{desired_unit}'. "
f"Skipping unit converstion for '{var_name}'.\n"
)

return self._ds

Expand Down
3 changes: 2 additions & 1 deletion continuous_integration/environment_actions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,12 @@ dependencies:
- coveralls
- pandas
- shapely
- pip
- lazy_loader
- cmweather
- arm-test-data
- moviepy
- ruff
- pip
- pip:
- mpl2nc
- metpy
Expand Down
2 changes: 1 addition & 1 deletion docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@
# |version| and |release|, also used in various other places throughout the
# built documents.
#
import act
import act # noqa

# The short X.Y version.
version = act.__version__
Expand Down
2 changes: 1 addition & 1 deletion examples/plotting/plot_daytime_averages.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
ds = ds.where(ds['sun_variable'] == 1)

# Take daily mean using xarray features
ds = ds.resample(time='1d', skipna=True, keep_attrs=True).mean()
ds = ds.resample(time='1d', skipna=True).mean()

# Creat Plot Display
display = act.plotting.TimeSeriesDisplay(ds, figsize=(15, 10))
Expand Down
4 changes: 2 additions & 2 deletions examples/plotting/plot_scatter.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
'ground_speed',
m_field='ambient_temp',
marker='x',
cbar_label=r'Ambient Temperature ($^\circ$C)', # noqa W605
cbar_label=r'Ambient Temperature ($^\circ$C)', # noqa W605
)

# Set the range of the field on the x-axis
Expand All @@ -47,7 +47,7 @@
display.axes[0].plot(ds['true_airspeed'], p(ds['true_airspeed']), 'r', linewidth=2)

# Display the line equation
display.axes[0].text(45, 135, "y = {:.3f}x + ({:.3f})".format(z[0], z[1]), color='r', fontsize=12)
display.axes[0].text(45, 135, f"y = {z[0]:.3f}x + ({z[1]:.3f})", color='r', fontsize=12)

# Calculate Pearson Correlation Coefficient
cc_conc = pearsonr(ds['true_airspeed'], ds['ground_speed'])
Expand Down
2 changes: 1 addition & 1 deletion examples/qc/plot_arm_qc.py
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@
# to give to other users.
# There is a file in the same directory called sgpmfrsr7nchE11.b1.yaml with times of
# incorrect or suspect values that can be read and applied to the Dataset.
from act.qc.add_supplemental_qc import apply_supplemental_qc
from act.qc.add_supplemental_qc import apply_supplemental_qc # noqa

apply_supplemental_qc(ds, 'sgpmfrsr7nchE11.b1.yaml')

Expand Down
6 changes: 6 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,9 @@ ignore = ["act/io/arm.py"]

[tool.check-manifest]
ignore = ["docs/*", "ci/*"]

[tool.ruff]
target-version = "py39"
ignore = [
"E501",
]
1 change: 1 addition & 0 deletions tests/plotting/test_geodisplay.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
from act.tests import sample_files

try:
import cartopy # noqa
CARTOPY_AVAILABLE = True
except ImportError:
CARTOPY_AVAILABLE = False
Expand Down
1 change: 1 addition & 0 deletions tests/plotting/test_xsectiondisplay.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
from act.tests import sample_files

try:
import cartopy # noqa
CARTOPY_AVAILABLE = True
except ImportError:
CARTOPY_AVAILABLE = False
Expand Down
2 changes: 1 addition & 1 deletion tests/qc/test_qcfilter.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
from act.tests import EXAMPLE_MET1, EXAMPLE_METE40, EXAMPLE_IRT25m20s

try:
import scikit_posthocs
import scikit_posthocs # noqa

SCIKIT_POSTHOCS_AVAILABLE = True
except ImportError:
Expand Down
2 changes: 1 addition & 1 deletion tests/retrievals/test_sp2_retrievals.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import act

try:
import pysp2
import pysp2 # noqa

PYSP2_AVAILABLE = True
except ImportError:
Expand Down
6 changes: 4 additions & 2 deletions tests/utils/test_data_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -152,8 +152,10 @@ def test_convert_units():
with redirect_stdout(f):
ds.utils.change_units('home_signal_15', 'not_a_real_unit_string', verbose=True)
s = f.getvalue()
assert s.strip() == f"Unable to convert '{var_name}' to units of '{unit}'. Skipping unit converstion for '{var_name}'."

assert (
s.strip()
== f"Unable to convert '{var_name}' to units of '{unit}'. Skipping unit converstion for '{var_name}'."
)
ds.close()
del ds

Expand Down
3 changes: 2 additions & 1 deletion tests/utils/test_io_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@
from act.tests import sample_files

try:
import moviepy.video.io.ImageSequenceClip
import moviepy.video.io.ImageSequenceClip # noqa

MOVIEPY_AVAILABLE = True
except ImportError:
MOVIEPY_AVAILABLE = False
Expand Down

0 comments on commit c133af7

Please sign in to comment.