Browse Source

Merge develop to main (#151)

* Update constants.py

Replace from numpy.asscalar to item() because numpy.asscalar causes FutureWarning.
Deprecated since numpy version 1.16: Deprecated, use numpy.ndarray.item() instead.

* Update decorators.py

Because of the change in the structure of the "collections" module, I change a bit.

* Update latlonutils.py

To avoid FutureWarning, Function "Iterable" should import from collections.abc.

* Update util.py

To avoid FutureWarning, function "Iterable" and "Mapping" should be imported from collections.abc.

* Restructuring repo (#150)

* Restructured folders and env files and some docs in regards

* Additional refactoring to file names

* Github actions configured fully

* Corrected ubuntu vs win64 bug in CI

* Windows build fix

* Trying to fix Windows build tests

* Continue fixing windows build tests

* ANother fixing attempt on windows build tests

* Stil attempting to fix

* Another attempt to fix

* Little correction in config

* Still trying to get windows build tests done

* Maybe this time

* try a different windows build bat

* Another attempt

* Trying vs2015 installation

* again

* Gave up windows build tests

* Remove CircleCI config

* Corrected env namein docs

* Sorted env files alphabetically

* Modified meta.yml and removed unnecessary meta.yaml files

* Corrected constants numpy item

* Numpy item use

Co-authored-by: muchojp <61620767+muchojp@users.noreply.github.com>
Co-authored-by: Michaela Sizemore <43652875+michaelavs@users.noreply.github.com>
main 1.3.2.6
Orhan Eroglu 4 years ago committed by GitHub
parent
commit
3f8dc6f0a2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 12
      .circleci/conda_env.yml
  2. 99
      .circleci/config.yml
  3. 56
      .github/workflows/ci.yml
  4. 21
      build_envs/Darwin.yml
  5. 21
      build_envs/Linux.yml
  6. 20
      build_envs/Win64.yml
  7. 9
      conda_recipe/meta.yaml
  8. 56
      conda_recipe/meta.yaml.develop
  9. 58
      conda_recipe/meta.yaml.release
  10. 8
      doc/source/contrib.rst
  11. 2
      src/wrf/constants.py
  12. 3
      src/wrf/decorators.py
  13. 2
      src/wrf/latlonutils.py
  14. 3
      src/wrf/util.py
  15. 22
      testenv2.yml
  16. 22
      testenv3.yml

12
.circleci/conda_env.yml

@ -1,12 +0,0 @@ @@ -1,12 +0,0 @@
name: wrf-python
channels:
- conda-forge
dependencies:
- gcc_linux-64
- gfortran_linux-64
- setuptools
- python
- numpy
- wrapt
- xarray
- netcdf4

99
.circleci/config.yml

@ -1,99 +0,0 @@ @@ -1,99 +0,0 @@
# Python CircleCI 2.0 configuration file
#
# Check https://circleci.com/docs/2.0/language-python/ for more details
#
version: 2
jobs:
lint:
docker:
- image: circleci/python:3.6.1
working_directory: ~/repo
steps:
- checkout
- run:
name: install pycodestyle
command: |
sudo pip install pycodestyle
- run:
name: run pycodestyle
command: |
pycodestyle src test
build:
docker:
# specify the version you desire here
# use `-browsers` prefix for selenium tests, e.g. `3.6.1-browsers`
- image: circleci/python:3.6.1
# Specify service dependencies here if necessary
# CircleCI maintains a library of pre-built images
# documented at https://circleci.com/docs/2.0/circleci-images/
# - image: circleci/postgres:9.4
working_directory: ~/repo
steps:
- checkout
# Download and cache dependencies
- restore_cache:
keys:
- v1-dependencies-{{ checksum ".circleci/conda_env.yml" }}
- run:
name: install conda and dependencies
command: |
test -d ~/miniconda3 && exit 0
echo "Installing a fresh version of Miniconda."
MINICONDA_URL="https://repo.continuum.io/miniconda"
MINICONDA_FILE="Miniconda3-latest-Linux-x86_64.sh"
curl -L -O "${MINICONDA_URL}/${MINICONDA_FILE}"
bash $MINICONDA_FILE -b
source ~/miniconda3/bin/activate root
conda env create -f .circleci/conda_env.yml
- save_cache:
paths:
- ~/miniconda3
key: v1-dependencies-{{ checksum ".circleci/conda_env.yml" }}
- run:
name: build wrf-python
command: |
source ~/miniconda3/bin/activate wrf-python
unset FFLAGS
unset LDFLAGS
unset CFLAGS
cd fortran/build_help
$FC -o sizes -fopenmp omp_sizes.f90
LD_LIBRARY_PATH=~/miniconda3/envs/wrf-python/lib python sub_sizes.py
cd ..
$FC -E ompgen.F90 -fopenmp -cpp -o omp.f90
cd ..
python setup.py config_fc --f90flags="-mtune=generic -fopenmp" build_ext --libraries="gomp" build
python setup.py install --single-version-externally-managed --record=record.txt
# run tests!
# this example uses Django's built-in test-runner
# other common Python testing frameworks include pytest and nose
# https://pytest.org
# https://nose.readthedocs.io
- run:
name: run tests
command: |
source ~/miniconda3/bin/activate wrf-python
cd test/ci_tests
python utests.py
- store_artifacts:
path: test-reports
destination: test-reports
workflows:
version: 2
build_and_lint:
jobs:
- build
- lint

56
.github/workflows/ci.yml

@ -0,0 +1,56 @@ @@ -0,0 +1,56 @@
name: CI
on:
push:
pull_request:
workflow_dispatch:
# schedule:
# - cron: '0 0 * * *' # Daily “At 00:00”
jobs:
test:
# if: |
# github.repository == 'NCAR/wrf-python'
name: Python (${{ matrix.python-version }}, ${{ matrix.os }})
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash -l {0}
strategy:
fail-fast: false
matrix:
os: [ "ubuntu-latest", "macos-latest"]
python-version: [ "3.6", "3.7", "3.8", "3.9" ]
steps:
- name: Cancel previous runs
uses: styfle/cancel-workflow-action@0.9.0
with:
access_token: ${{ github.token }}
- name: Checkout
uses: actions/checkout@v2
with:
token: ${{ github.token }}
- name: Conda setup
uses: conda-incubator/setup-miniconda@v2
with:
activate-environment: wrf_python_build
python-version: ${{ matrix.python-version }}
channels: conda-forge, ncar
- name: Conda install (Darwin)
if: matrix.os == 'macos-latest'
run: |
conda env update --file build_envs/Darwin.yml --prune
- name: Conda install (Linux)
if: matrix.os == 'ubuntu-latest'
run: |
conda env update --file build_envs/Linux.yml --prune
- name: Build WRF-Python
run: |
cd build_scripts
./gnu_omp.sh
cd ..
- name: Run tests
run: |
cd test/ci_tests
python utests.py

21
osx.yml → build_envs/Darwin.yml

@ -1,20 +1,21 @@ @@ -1,20 +1,21 @@
# Create full conda environment for development, including some useful tools
name: develop
name: wrf_python_build
channels:
- conda-forge
dependencies:
- python=3
- wrapt
- numpy
- basemap
- cartopy
- clang_osx-64
- gfortran_osx-64
- jupyter
- matplotlib
- netcdf4
- xarray
- jupyter
- numpy
- pycodestyle
- setuptools
- sphinx
- sphinx_rtd_theme
- pycodestyle
- cartopy
- basemap
- clang_osx-64
- gfortran_osx-64
- wrapt
- xarray

21
linux.yml → build_envs/Linux.yml

@ -1,20 +1,21 @@ @@ -1,20 +1,21 @@
# Create full conda environment for development, including some useful tools
name: develop
name: wrf_python_build
channels:
- conda-forge
dependencies:
- python=3
- wrapt
- numpy
- basemap
- cartopy
- gcc_linux-64
- gfortran_linux-64
- jupyter
- matplotlib
- netcdf4
- xarray
- jupyter
- numpy
- pycodestyle
- setuptools
- sphinx
- sphinx_rtd_theme
- pycodestyle
- cartopy
- basemap
- gcc_linux-64
- gfortran_linux-64
- wrapt
- xarray

20
win64.yml → build_envs/Win64.yml

@ -1,19 +1,21 @@ @@ -1,19 +1,21 @@
# Create full conda environment for development, including some useful tools
name: develop
name: wrf_python_build
channels:
- conda-forge
- msys2
dependencies:
- python=3
- wrapt
- numpy
- basemap
- cartopy
- jupyter
- m2w64-toolchain
- matplotlib
- netcdf4
- xarray
- jupyter
- numpy
- pycodestyle
- setuptools
- sphinx
- sphinx_rtd_theme
- pycodestyle
- cartopy
- basemap
- m2w64-toolchain
- wrapt
- xarray

9
conda_recipe/meta.yaml

@ -1,12 +1,17 @@ @@ -1,12 +1,17 @@
{% set version = "1.3.2.5" %}
{% set version = "1.3.2.6" %}
package:
name: wrf-python
version: {{ version }}
source:
# for develop
git_url: https://github.com/NCAR/wrf-python
git_branch: develop
git_branch: develop
# for release
# fn: wrf-python-{{ version }}.tar.gz
# url: https://github.com/NCAR/wrf-python/archive/{{ version }}.tar.gz
# sha256: 9ca11366ed9a0d5e83e576ac80ce36be4748ba8a06752dac077277acec5e46d9
build:
number: 0

56
conda_recipe/meta.yaml.develop

@ -1,56 +0,0 @@ @@ -1,56 +0,0 @@
{% set version = "1.3.2.5" %}
package:
name: wrf-python
version: {{ version }}
source:
git_url: https://github.com/NCAR/wrf-python
git_branch: develop
build:
number: 0
detect_binary_files_with_prefix: true
requirements:
build:
- setuptools
- python
- numpy 1.11.* # [unix]
- numpy 1.14.* # [win]
- wrapt
- m2w64-toolchain # [win]
- gcc # [unix]
run:
- setuptools
- numpy >=1.11 # [unix]
- numpy >=1.14 # [win]
- python
- wrapt
- m2w64-gcc-libs # [win]
- libgfortran # [unix]
- libgcc # [unix]
- xarray
test:
requires:
- setuptools
- netcdf4
- xarray
source_files:
- test/ci_tests
imports:
- wrf
commands:
- cd test/ci_tests && python utests.py
about:
home: https://github.com/NCAR/wrf-python
license: "UCAR"
license_file: '{{ environ["RECIPE_DIR"] }}/LICENSE'
summary: "Diagnostic and interpolation routines for WRF-ARW data."
extra:
recipe-maintainers:
- michaelavs
- erogluorhan

58
conda_recipe/meta.yaml.release

@ -1,58 +0,0 @@ @@ -1,58 +0,0 @@
{% set version = "1.3.2.5" %}
package:
name: wrf-python
version: {{ version }}
source:
fn: wrf-python-{{ version }}.tar.gz
url: https://github.com/NCAR/wrf-python/archive/{{ version }}.tar.gz
sha256: 9ca11366ed9a0d5e83e576ac80ce36be4748ba8a06752dac077277acec5e46d9
build:
number: 0
detect_binary_files_with_prefix: true
requirements:
build:
- setuptools
- python
- numpy 1.11.* # [unix]
- numpy 1.14.* # [win]
- wrapt
- m2w64-toolchain # [win]
- gcc # [unix]
run:
- setuptools
- numpy >=1.11 # [unix]
- numpy >=1.14 # [win]
- python
- wrapt
- m2w64-gcc-libs # [win]
- libgfortran # [unix]
- libgcc # [unix]
- xarray
test:
requires:
- setuptools
- netcdf4
- xarray
source_files:
- test/ci_tests
imports:
- wrf
commands:
- cd test/ci_tests && python utests.py
about:
home: https://github.com/NCAR/wrf-python
license: "UCAR"
license_file: '{{ environ["RECIPE_DIR"] }}/LICENSE'
summary: "Diagnostic and interpolation routines for WRF-ARW data."
extra:
recipe-maintainers:
- michaelavs
- erogluorhan

8
doc/source/contrib.rst

@ -301,19 +301,19 @@ contributing is: @@ -301,19 +301,19 @@ contributing is:
.. code::
conda env create -f osx.yml
conda env create -f build_envs/Darwin.yml
Linux:
.. code::
conda env create -f linux.yml
conda env create -f build_envs/Linux.yml
Win64:
.. code::
conda env create -f win64.yml
conda env create -f build_envs/Win64.yml
Note: For Win64, you will also need VS2015 installed on your system.
@ -321,7 +321,7 @@ contributing is: @@ -321,7 +321,7 @@ contributing is:
.. code::
conda activate develop
conda activate wrf_python_build
- CD to the build_scripts directory.

2
src/wrf/constants.py

@ -16,7 +16,7 @@ class Constants(object): @@ -16,7 +16,7 @@ class Constants(object):
for key, val in viewitems(wrf_constants.__dict__):
setattr(Constants, key.upper(), np.asscalar(val))
setattr(Constants, key.upper(), np.array(val).item())
OMP_SCHED_STATIC = omp_constants.fomp_sched_static
OMP_SCHED_DYNAMIC = omp_constants.fomp_sched_dynamic

3
src/wrf/decorators.py

@ -1,6 +1,7 @@ @@ -1,6 +1,7 @@
from __future__ import (absolute_import, division, print_function)
from collections import Iterable, OrderedDict
from collections import OrderedDict
from collections.abc import Iterable
import wrapt
import numpy as np

2
src/wrf/latlonutils.py

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
from __future__ import (absolute_import, division, print_function)
from collections import Iterable
from collections.abc import Iterable
import numpy as np

3
src/wrf/util.py

@ -3,7 +3,8 @@ from __future__ import (absolute_import, division, print_function) @@ -3,7 +3,8 @@ from __future__ import (absolute_import, division, print_function)
import os
from sys import version_info
from copy import copy
from collections import Iterable, Mapping, OrderedDict
from collections import OrderedDict
from collections.abc import Iterable, Mapping
from itertools import product, tee
from types import GeneratorType
import datetime as dt

22
testenv2.yml

@ -1,22 +0,0 @@ @@ -1,22 +0,0 @@
# Create full conda environment for development, including some useful tools
name: testenv2
channels:
- conda-forge
dependencies:
- python=2
- wrapt
- numpy
- matplotlib
- netcdf4
- xarray
- jupyter
- sphinx
- sphinx_rtd_theme
- pycodestyle
- cartopy
- basemap
- clang_osx-64
- gfortran_osx-64
- pynio
- ncl

22
testenv3.yml

@ -1,22 +0,0 @@ @@ -1,22 +0,0 @@
# Create full conda environment for development, including some useful tools
name: testenv3
channels:
- conda-forge
dependencies:
- python=3
- wrapt
- numpy
- matplotlib
- netcdf4
- xarray
- jupyter
- sphinx
- sphinx_rtd_theme
- pycodestyle
- cartopy
- basemap
- clang_osx-64
- gfortran_osx-64
- pynio
- ncl
Loading…
Cancel
Save