Skip to content

Commit

Permalink
Merge pull request #66 from ocefpaf/modernize_cis
Browse files Browse the repository at this point in the history
Modernize CIs
  • Loading branch information
ocefpaf committed Apr 15, 2019
2 parents 82fd9b7 + 7f89e70 commit 5322b0b
Show file tree
Hide file tree
Showing 19 changed files with 126 additions and 35 deletions.
25 changes: 25 additions & 0 deletions .appveyor.yml
@@ -0,0 +1,25 @@
build: false

environment:
matrix:
- PYTHON: "C:\\Miniconda36-x64"
PY: 3.7

install:
# Install and configure miniconda.
- "set PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%"
- conda config --set always_yes yes --set changeps1 no --set show_channel_urls true
- conda update conda --quiet
- conda install pycryptosat --quiet
- conda config --add channels conda-forge --force
- conda config --set sat_solver pycryptosat
- conda config --set channel_priority strict
- conda config --set safety_checks disabled

# Create the test env.
- conda create --name TEST python=%PY% --file requirements.txt --file requirements-dev.txt
- activate TEST

test_script:
- pip install -e . --no-deps --force-reinstall
- pytest -n 2 -rxs tests
91 changes: 67 additions & 24 deletions .travis.yml
Expand Up @@ -2,38 +2,81 @@ language: python

sudo: false

env:
global:
- secure: "ZN/NaiMNwlLUbxD4P+ha8SDfv1hfaJl9Dm838Z27cGPrOOFYC66sC1zLYnlWn1qeutyKZcML+EJ8m+aARe7ONQ97Noshm0i2ldtTAthpIoCOmIWja+9TvWQ5L3if3FUt9OsiHunkOZUM0IUILYryEgCrisUtO2WzcPs2XMO+c8M="

matrix:
fast_finish: true
include:
- python: 2.7
env: TEST_TARGET=default
- python: 3.5
env: TEST_TARGET=default
- python: 3.6
env: TEST_TARGET=default
- python: 3.6
env: TEST_TARGET=coding_standards
- name: "python-3.7"
env: PY=3.7
- name: "python-3.6"
env: PY=3.6
- name: "python-2.7"
env: PY=2.7
- name: "coding_standards"
env: PY=3.7
- name: "docs"
env: PY=3.7
allow_failures:
- name: "coding_standards"
env: PY=3.7

before_install:
- wget http://bit.ly/miniconda -O miniconda.sh
- bash miniconda.sh -b -p $HOME/miniconda
- export PATH="$HOME/miniconda/bin:$PATH"
- conda config --set always_yes yes --set changeps1 no --set show_channel_urls true
- conda update conda
- conda config --add channels conda-forge --force
- conda create --name TEST python=$TRAVIS_PYTHON_VERSION --file requirements.txt --file requirements-dev.txt
- source activate TEST
# Install miniconda and create TEST env.
- |
wget http://bit.ly/miniconda -O miniconda.sh
bash miniconda.sh -b -p $HOME/miniconda
export PATH="$HOME/miniconda/bin:$PATH"
conda config --set always_yes yes --set changeps1 no --set show_channel_urls true
conda update conda --quiet
conda install pycryptosat --quiet
conda config --add channels conda-forge --force
conda config --set sat_solver pycryptosat
conda config --set channel_priority strict
conda config --set safety_checks disabled
conda create --name TEST python=$PY --file requirements.txt --file requirements-dev.txt
source activate TEST
install:
# Test source distribution.
- python setup.py sdist && version=$(python setup.py --version) && pushd dist && pip install UTide-${version}.tar.gz && popd
- python setup.py sdist && version=$(python setup.py --version) && pushd dist && pip install --no-deps --force-reinstall UTide-${version}.tar.gz && popd

script:
- if [[ $TEST_TARGET == 'default' ]]; then
py.test -vv ;
fi
- if [[ $TRAVIS_JOB_NAME == python-* ]]; then
cp -r tests/ /tmp ;
pushd /tmp && pytest -n 2 -rxs --cov=utide tests && popd ;
fi

- if [[ $TEST_TARGET == 'coding_standards' ]]; then
pycodestyle --ignore=E741,E226,W504 --max-line-length=100 tests ;
pycodestyle --ignore=E741,E226,W504 --max-line-length=100 utide ;
- if [[ $TRAVIS_JOB_NAME == 'coding_standards' ]]; then
pytest --flake8 -m flake8 ;
fi

- |
if [[ $TRAVIS_JOB_NAME == 'docs' ]]; then
set -e
conda install doctr
pushd docs
make clean html linkcheck
popd
if [[ -z "$TRAVIS_TAG" ]]; then
python -m doctr deploy --build-tags --key-path github_deploy_key_wesleybowman_utide.enc --built-docs docs/_build/html dev
else
python -m doctr deploy --build-tags --key-path github_deploy_key_wesleybowman_utide.enc --built-docs docs/_build/html "version-$TRAVIS_TAG"
python -m doctr deploy --build-tags --key-path github_deploy_key_wesleybowman_utide.enc --built-docs docs/_build/html .
fi
fi
deploy:
skip_cleanup: true
provider: pypi
user: ocefpaf
password:
secure: "n7V/06zaWzAHiAx2YLh6n+glbRKHEdHntw8oOJXQJKQaiDzJR+Be2FANZ4rSof4kkDVUwwqTNzAuVn43BJBt4WdKdh3PWZwhfm4+/lzN1lpwyhK+P/5IUxSynov2JcqzvJtmrGCELEqrULBvrbBbcf9f93NPUr6Id5iA0shKv4w="
distributions: sdist bdist_wheel
upload_docs: no
on:
repo: wesleybowman/UTide
tags: true
all_branches: master
condition: '$TRAVIS_JOB_NAME == "python-3.7"'
6 changes: 5 additions & 1 deletion README.rst
@@ -1,6 +1,6 @@
UTide
=====
|travis| |license| |conda| |downloads| |anaconda_cloud|
|travis| |license| |conda| |downloads| |anaconda_cloud| |appveyor|

.. |travis| image:: https://travis-ci.org/wesleybowman/UTide.svg?branch=master
:target: https://travis-ci.org/wesleybowman/UTide
Expand All @@ -17,6 +17,10 @@ UTide
.. |anaconda_cloud| image:: https://anaconda.org/conda-forge/utide/badges/version.svg
:target: https://anaconda.org/conda-forge/utide

.. |appveyor| image:: https://ci.appveyor.com/api/projects/status/4o163ma4ehhr3q48/branch/master?svg=true
:target: https://ci.appveyor.com/project/wesleybowman/utide/branch/master


Python re-implementation of the Matlab package UTide.

Still in heavy development--everything is subject to change!
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
1 change: 1 addition & 0 deletions github_deploy_key_wesleybowman_utide.enc
@@ -0,0 +1 @@
gAAAAABctHINHbJo74bSpj4MSjKOYz5AwU0qWjTJmoQ2Yw73TSVvFql3h7ERrxxmo3Sbw96YlBR00KXDSPeKnCen0QX8vdBE-fR_tEqgCElBklDTD4L1AYW6CM8Nl7ZyING8DQ0HMsSjSyGLzsmUQU96w5rWe04F6oALY3OJDc7V6I5ll1x_HC0bVq2kTQfwju9_dUiU2zdIJSnRLjwsXgmmzMFqkf-ZLj7-ol_6wi6VQ_eEssEee4SvvQZ0lVfq7iG8-_hxHL6eD3roecy69P8VlN1hwDSy58dWh_U-Ye587wv_UasXAfPeKN6ImOJHJfxcSaGKXwbYiIw75lQbpNDsR5Jm9g5OrX60skQcoitBVT7_9QgCjNtMYkCBPEK8v4_R_xoX0MnXMnjdu1saAV7s3ZkYfVNdMA_8MCWxtW1_g3kTKpQGekInLSArIwr9WEN4GwO9dcLHr0J0Y21aib3yAS6MJrfLowQBg9YlNm0Jt7SfY5np7Kha_Wn_I_vGgMdc8dh0e5K8lkWPbuCi9ts_bM2YdTwvozN2obrKMYM5UjcyidcOeUq3ZDHSYvquXfttxq7neShfkuUDXcJzy5I8AQQdl-NB4wX6bT9RHQLpc6RUveJd1gYcGy65ZO_E7QMr7Lj5En7t6lNu1Zr_1vA9buoNi_nA0g8ytAtyUcZRpJwIZQXELxqYGf6pnO3kWx_c7X7n65CUta_KiQb_716KF54c5ZWVp4cILCw06PIosyTSOmag5XDDK8q4SWKa8F4eqx3tyrVsHVZp27G4iK3FqXNm2_dZd1OQfdO9jhyKaPGZDfSpAwQn6iWhz46zMIpqQpyGq0xJqKwAIJkTwvrNk5JbiyvuZqcjVO4mb8iEjDz-fKcdXAsfSOJ_oQJf04GpFPFKLOuv3HOz7iBzknmo1f5tsuY3BOlUgDymAA6UypibwaksYvt3LKIVPPFAeEva1uleRF85pFGATZdV1jZYpJ51dP8pcn9WG1ZLaydlSm_yDoBKB5IJg80NuKrAY9AXAw6Le-rel0JVzx6957y78iQAbwe-CMQQfIoe0tu1wm9wt9FBWoAsC4QPSc9ov3ASIS8eSvngmQEp-x4hMPRXQCNp01bTHYVYdJcc-yLvbpDqfjKLl270fubLuBi4zUfA8v67KdmUv3h2XKGz1XfWia617UCJKFE4TatEXgEjHG2gZvCSFChweji5FWV-T1Cra4IkV_aYnVMbjRHtWGwxWiPTefk0xQZPpry7Ogb9oeyPdTGtO3cCkaILruN81wFJl-txCxhnVXIoetwGcpJJBdX0vLvSZispwj7j1a11eaM2RYjMBCaj8D3RXntD3jLOxDncp488Fs1tOYPPNXSzGhox5XJ7VSfsTr5UiSjsJ5mT8Kf4VAkCVj9OD3iyDjmVZxV82FhRVOI6-IGGMMIKC7nKKjI6eaEimm_HAabs2B7Ty4mlZK2beksimLvHVX5YdGrkQbmrNPN-8im1nVY5wzWYXCdMV2bJSEgZjlQ9xblOHKSkkLQUIzH7WHhxyHveqCzMdp139ESYz2AaqZjMSfAapNdAP-NY596dzrWa8qXaCBWLb0TU5KOq2urpaFofQOkbf1unmYThzhk9_k0_YVDIkLTHj7WLSGt7V0saADDLhxSWUhkHey8EMRTheld_jrB6CCIPkw4H3ind9r5Ap3LYNNiIyGB6U-mfoUcvz-rt3Z1xezmx8gqO21CSUgS4E074-b-EULXJ74E-B8YAZShjXukZOytJOz2l8iP-GMvSR7VoJWAFohgJdxkl3PzdN370SPmSPwF0tKzf6LmkkvuqfkohJpuff6JPxdkXa_EGWQMtYeSI9rwGy25SC4j3Bnu6d5JCLlzVmk8ztKVBQbtB54ljZ-X5YUNZYyeFQhUjhwa8Zeiw8C0qoIpoENjNLCpdmdp7nr5UMZOXzeFbJCqN1KcaIPyzerfHANM7aH65ftSAhBGegtDYW7EUA2beAGjtlOrq1FSZqbbYxgR5VTEnnnciovT7JBuc2tkaDI4o2TANbcOFhQkQthIlNsKF6YAuY2g4bSKF_CcICWohDYWXOrAd-TnFknN71YbQuyO-due1OjT04ZQptZGHlKyKKx4EvEG4AGsWPyT-2OlAZQ_7pNyIVfTo1QXTuFFcHAlmo0Y24z5iQuDAZmajrwLcv1vqHSJ3xE2-GFwGao0NnvoMC7Y0dEzUWVGhzjkPn5aU2x8T-9V-OUfIWIDZSaL6T39Tdh-yPfF3uND-qibt78f0jVtYfSmwR16QN0ItYLc1e1vbXh7blXk_kSA1a-ZJdzbuf32OiuGunvo2InJDr02K5_7a3sY-wgLTa2Z-zBTKJWLNoogHo09L5jxVZ34tHt_fCe0d54mnWtNi3pQ32_nnHW5otU6MhWoNZ53vqkwZNm9GN4hIOGrWrTm1LOn2dEXlOz96GIKj5NaxP2qQqQeMV1PTiqwmAuyKrjlfcaoWDbe9wVa1JCvUJtJUNYbDyCgvals_PvYsJ_jQP-IDpS5JX1GJwvoQ19k_UFsNsRNZ1ZOckgOuBDQgu3KaftZ9ZdV0Xq2eTNfUFsLFQJ0vxN9JIB6LG5fBZ9ozQaCSLXRPWoXciV8ZVjFAww6HpsPKHWK-sPVt-L8cjDX0dWKl7hVrETbKg21TgZkSzAWi9Btfbrx453EnFPAET5xLUQaylTXqSEbb0mQVeiI1gprYuk_RAxdzb0RXQZmNYbvRqTk4Hn5EmosDdXA0ZQuuDKxIkSm5jdOTWk2Rem8syAgQBvZ1rYN43WQOGr4O0Gl5Ohlo-t59BcKUyuRwsZ36Ny5CzQykSMfDRcGOnMz7W9jzELDGWv8ZaWX-WvlBd0XyCodDtGpSgnnt6_g9AONSIbDpwSSmwa4jAlOGwqlAReJ3jAHb8RnB55vWuwul9maQ7toKKkeqwkUYsUtjQ1D1UGkEBVkPLc2bAnCfVEVC1p3UOXsh0VXViLPUt3IwJR9JMCSJPYgEDXxCLjFSw_yealup_dkrbjWD1U6oc8HAKWLuJTiuj6gFtacoM2GtcEOqs1UDlRJfd5-neXM_hBx3zF5N-3rffZ0fKX-3LaMT7bh0ddbSUR12oaWnULalmzIjABS1cHazpSmXZvxtzXcYQ0cTULajpMyXgy8QV2sGZ4BTAQCjz8xmylPt7Pspd6Q78dx6kDtSb15YGZRyv_d6W0DmwXWLhsA3KEguAFEv78BkAGhUANB-ZR6CPznWBVBPhB_hjvflb3HHI3hc4LTFAfQZBHIC_GFeFA1K8XTSDDP4_sWmTy5wtOMN9ZfgsgFgH4r4SdVlkV5mtdFEcajAI5DEbyh243vmxXdio9s9EV14YUVC2gxSpGuG2pd1R34r2j4x_SOOSL7zSdvuZWQC6E9A3w-w9VXrq1eRP9Nk6XQneGIn5IYc3JP1pIyKd6sSkRDv0MIrNRqBglKQ-tN1NV6qatz-X_pDLYmcA-ovUMNsosd7VCPPO6LDfVTMiSISjf5IDqTfe8VrnqyjsMWvwPF2zwig3ThDck9I48UrNI8aRzXyLgy2voaSk98QCCipiN-3FgkjAa7L3eYzXFkBTt1wW8SRIYiPJT7NI-WSYO5eANBQJASxf4YD7BX7LxUvv2PMKYQ8YaOV537WsqKSEgCpZV11o26mXJsxSeQ-LJ5keo58Z0dFpFSLJSmNd-disk4gZPjJvc7eKfz6dHPapChJ7AfaBo3qPzxDvQxBYv4n_AOBKOb1X8SjEI7bypWpcLHnaxBCMklGmqJB0DalnZ9KdEgee2e9pWvQq7ubcqyQy4ZsFUIr6VEiXQ26z95HXRf740Qjfir4uDLaXF28N_XVyaIDOu-YOVldDG5Azc_n-6aFuV2OCcGh26tm_ZEwQ41f8O1T25gtQ71XOL4AtJksYWn8C6CLLWXvYWYnyGyK0dyvmFGbgSMOqx7nxHTJyiLthOebWgnTZCZubWAnM27iz0dNGC9zoJfrVw9bTIZUCPyF5f7dqnhwVaAYwkpSxYNqtI9XYN9hjkd5nAd_BT7o8iC6Q33ccM4gTjHSOHVVOG-ADvONJ3DBkG0VGNgTZ0J7VWISxhIS5-mD4PD5VI7Nyptu6ru9PWOCPa3X2fy7E1_JBNvcWMGMm3OD5KjlwBO629tktB2q4YU3DC5yAnBnlNzcpUgahQh8Vm8ptUEp1Du6aRxFYZjF_ZvWBhxWy4eXDMxg3BUj6V5h9V4TATVqMzdmlNp4t65eDHgxRUTWQe67R-cW9IcKtd_X47HrNlqfxCwixn9xC4XronjGhzURj1EUU6BNI5bu1Fow1TsZjD_mPNbSGvgWYZeAH8VbAbGz6baTA79x46DGDR0PXElvw1LcOxyTOA72TTeLvVlkRLY82LbJL9Tl8X_HAIbZHB1x9dDl-MhV3VwNSsgE4o3r14H-3gvSvOfCBBmXCqvkAGJQUlQTYg==
9 changes: 9 additions & 0 deletions requirements-dev.txt
@@ -1,5 +1,14 @@
flake8
flake8-builtins
flake8-comprehensions
flake8-mutable
flake8-print
matplotlib
pandas
pycodestyle
pytest
pytest-cov
pytest-flake8
pytest-xdist
sphinx
twine
12 changes: 12 additions & 0 deletions setup.cfg
Expand Up @@ -9,3 +9,15 @@ versionfile_source = utide/_version.py
versionfile_build = utide/_version.py
tag_prefix = v
parentdir_prefix =

[tool:pytest]
flake8-max-line-length = 105
flake8-ignore =
E741,E226,W504
docs/* ALL
versioneer.py ALL
utide/_version.py ALL

[metadata]
description-file = README.rst
license_file = LICENSE.txt
4 changes: 1 addition & 3 deletions setup.py
Expand Up @@ -11,16 +11,14 @@ def read(*parts):
return open(os.path.join(rootpath, *parts), 'r').read()


long_description = '{}\n{}'.format(read('README.rst'), read('LICENSE.txt'))

with open('requirements.txt') as f:
require = f.readlines()
install_requires = [r.strip() for r in require]

setup(name='UTide',
version=versioneer.get_version(),
license='MIT',
long_description=long_description,
long_description=read('README.rst'),
classifiers=['Development Status :: 5 - Production/Stable',
'Environment :: Console',
'Intended Audience :: Science/Research',
Expand Down
11 changes: 5 additions & 6 deletions tests/test_uv.py
Expand Up @@ -15,8 +15,7 @@
from utide.utilities import Bunch


@pytest.fixture
def fake_tide(t, M2amp, M2phase):
def _fake_tide(t, M2amp, M2phase):
"""
Generate a minimally realistic-looking fake semidiurnal tide.
Expand All @@ -36,14 +35,14 @@ def make_data():
np.random.seed(1234)
t = date_range(start='2016-03-29', periods=N, freq='H')
# Signal + some noise.
u = fake_tide(np.arange(N), M2amp=2, M2phase=0) + np.random.randn(N)
v = fake_tide(np.arange(N), M2amp=1, M2phase=np.pi) + np.random.randn(N)
u = _fake_tide(np.arange(N), M2amp=2, M2phase=0) + np.random.randn(N)
v = _fake_tide(np.arange(N), M2amp=1, M2phase=np.pi) + np.random.randn(N)
time = date2num(t.to_pydatetime())
return time, u, v


def test_solve():
time, u, v = make_data()
def test_solve(make_data):
time, u, v = make_data
coef = solve(time, u, v,
lat=-42.5,
nodal=False,
Expand Down
2 changes: 1 addition & 1 deletion utide/periodogram.py
Expand Up @@ -332,7 +332,7 @@ def band_psd(t, e, cfrq, equi=True, frqosamp=1):
t = t[:-1]
nt -= 1

hn = signal.hanning(nt, sym=False)
hn = signal.windows.hann(nt, sym=False)

# on real component
if equi: # If even sampling, FFT.
Expand Down

0 comments on commit 5322b0b

Please sign in to comment.