forked from pyqtgraph/pyqtgraph
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
300 changed files
with
15,507 additions
and
8,567 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,3 +2,8 @@ __pycache__ | |
build | ||
*.pyc | ||
*.swp | ||
MANIFEST | ||
deb_build | ||
dist | ||
.idea | ||
rtr.cvs |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,230 @@ | ||
language: python | ||
|
||
# Credit: Original .travis.yml lifted from VisPy | ||
|
||
# Here we use anaconda for 2.6 and 3.3, since it provides the simplest | ||
# interface for running different versions of Python. We could also use | ||
# it for 2.7, but the Ubuntu system has installable 2.7 Qt4-GL, which | ||
# allows for more complete testing. | ||
notifications: | ||
email: false | ||
|
||
virtualenv: | ||
system_site_packages: true | ||
|
||
|
||
env: | ||
# Enable python 2 and python 3 builds | ||
# Note that the 2.6 build doesn't get flake8, and runs old versions of | ||
# Pyglet and GLFW to make sure we deal with those correctly | ||
#- PYTHON=2.6 QT=pyqt TEST=standard | ||
- PYTHON=2.7 QT=pyqt TEST=extra | ||
- PYTHON=2.7 QT=pyside TEST=standard | ||
- PYTHON=3.2 QT=pyqt TEST=standard | ||
- PYTHON=3.2 QT=pyside TEST=standard | ||
#- PYTHON=3.2 QT=pyqt5 TEST=standard | ||
|
||
|
||
before_install: | ||
- TRAVIS_DIR=`pwd` | ||
- travis_retry sudo apt-get update; | ||
# - if [ "${PYTHON}" != "2.7" ]; then | ||
# wget http://repo.continuum.io/miniconda/Miniconda-2.2.2-Linux-x86_64.sh -O miniconda.sh && | ||
# chmod +x miniconda.sh && | ||
# ./miniconda.sh -b && | ||
# export PATH=/home/$USER/anaconda/bin:$PATH && | ||
# conda update --yes conda && | ||
# travis_retry sudo apt-get -qq -y install libgl1-mesa-dri; | ||
# fi; | ||
- if [ "${TRAVIS_PULL_REQUEST}" != "false" ]; then | ||
GIT_TARGET_EXTRA="+refs/heads/${TRAVIS_BRANCH}"; | ||
GIT_SOURCE_EXTRA="+refs/pull/${TRAVIS_PULL_REQUEST}/merge"; | ||
else | ||
GIT_TARGET_EXTRA=""; | ||
GIT_SOURCE_EXTRA=""; | ||
fi; | ||
|
||
# to aid in debugging | ||
- echo ${TRAVIS_BRANCH} | ||
- echo ${TRAVIS_REPO_SLUG} | ||
- echo ${GIT_TARGET_EXTRA} | ||
- echo ${GIT_SOURCE_EXTRA} | ||
|
||
install: | ||
# Dependencies | ||
- if [ "${PYTHON}" == "2.7" ]; then | ||
travis_retry sudo apt-get -qq -y install python-numpy && | ||
export PIP=pip && | ||
sudo ${PIP} install pytest && | ||
sudo ${PIP} install flake8 && | ||
export PYTEST=py.test; | ||
else | ||
travis_retry sudo apt-get -qq -y install python3-numpy && | ||
curl http://python-distribute.org/distribute_setup.py | sudo python3 && | ||
curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | sudo python3 && | ||
export PIP=pip3.2 && | ||
sudo ${PIP} install pytest && | ||
sudo ${PIP} install flake8 && | ||
export PYTEST=py.test-3.2; | ||
fi; | ||
|
||
# Qt | ||
- if [ "${PYTHON}" == "2.7" ]; then | ||
if [ ${QT} == 'pyqt' ]; then | ||
travis_retry sudo apt-get -qq -y install python-qt4 python-qt4-gl; | ||
else | ||
travis_retry sudo apt-get -qq -y install python-pyside.qtcore python-pyside.qtgui python-pyside.qtsvg python-pyside.qtopengl; | ||
fi; | ||
elif [ "${PYTHON}" == "3.2" ]; then | ||
if [ ${QT} == 'pyqt' ]; then | ||
travis_retry sudo apt-get -qq -y install python3-pyqt4; | ||
elif [ ${QT} == 'pyside' ]; then | ||
travis_retry sudo apt-get -qq -y install python3-pyside; | ||
else | ||
${PIP} search PyQt5; | ||
${PIP} install PyQt5; | ||
cat /home/travis/.pip/pip.log; | ||
fi; | ||
else | ||
conda create -n testenv --yes --quiet pip python=$PYTHON && | ||
source activate testenv && | ||
if [ ${QT} == 'pyqt' ]; then | ||
conda install --yes --quiet pyside; | ||
else | ||
conda install --yes --quiet pyside; | ||
fi; | ||
fi; | ||
|
||
# Install PyOpenGL | ||
- if [ "${PYTHON}" == "2.7" ]; then | ||
echo "Using OpenGL stable version (apt)"; | ||
travis_retry sudo apt-get -qq -y install python-opengl; | ||
else | ||
echo "Using OpenGL stable version (pip)"; | ||
${PIP} install -q PyOpenGL; | ||
cat /home/travis/.pip/pip.log; | ||
fi; | ||
|
||
|
||
# Debugging helpers | ||
- uname -a | ||
- cat /etc/issue | ||
- if [ "${PYTHON}" == "2.7" ]; then | ||
python --version; | ||
else | ||
python3 --version; | ||
fi; | ||
- apt-cache search python3-pyqt | ||
- apt-cache search python3-pyside | ||
- apt-cache search pytest | ||
- apt-cache search python pip | ||
- apt-cache search python qt5 | ||
|
||
|
||
before_script: | ||
# We need to create a (fake) display on Travis, let's use a funny resolution | ||
- export DISPLAY=:99.0 | ||
- /sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -screen 0 1400x900x24 -ac +extension GLX +render | ||
|
||
# Make sure everyone uses the correct python | ||
- mkdir ~/bin && ln -s `which python${PYTHON}` ~/bin/python | ||
- export PATH=/home/travis/bin:$PATH | ||
- which python | ||
- python --version | ||
# Help color output from each test | ||
- RESET='\033[0m'; | ||
RED='\033[00;31m'; | ||
GREEN='\033[00;32m'; | ||
YELLOW='\033[00;33m'; | ||
BLUE='\033[00;34m'; | ||
PURPLE='\033[00;35m'; | ||
CYAN='\033[00;36m'; | ||
WHITE='\033[00;37m'; | ||
start_test() { | ||
echo -e "${BLUE}======== Starting $1 ========${RESET}"; | ||
}; | ||
check_output() { | ||
ret=$?; | ||
if [ $ret == 0 ]; then | ||
echo -e "${GREEN}>>>>>> $1 passed <<<<<<${RESET}"; | ||
else | ||
echo -e "${RED}>>>>>> $1 FAILED <<<<<<${RESET}"; | ||
fi; | ||
return $ret; | ||
}; | ||
|
||
- if [ "${TEST}" == "extra" ]; then | ||
start_test "repo size check"; | ||
mkdir ~/repo-clone && cd ~/repo-clone && | ||
git init && git remote add -t ${TRAVIS_BRANCH} origin git://github.com/${TRAVIS_REPO_SLUG}.git && | ||
git fetch origin ${GIT_TARGET_EXTRA} && | ||
git checkout -qf FETCH_HEAD && | ||
git tag travis-merge-target && | ||
git gc --aggressive && | ||
TARGET_SIZE=`du -s . | sed -e "s/\t.*//"` && | ||
git pull origin ${GIT_SOURCE_EXTRA} && | ||
git gc --aggressive && | ||
MERGE_SIZE=`du -s . | sed -e "s/\t.*//"` && | ||
if [ "${MERGE_SIZE}" != "${TARGET_SIZE}" ]; then | ||
SIZE_DIFF=`expr \( ${MERGE_SIZE} - ${TARGET_SIZE} \)`; | ||
else | ||
SIZE_DIFF=0; | ||
fi; | ||
fi; | ||
|
||
- cd $TRAVIS_DIR | ||
|
||
|
||
script: | ||
|
||
# Run unit tests | ||
- start_test "unit tests"; | ||
PYTHONPATH=. ${PYTEST} pyqtgraph/; | ||
check_output "unit tests"; | ||
|
||
|
||
# check line endings | ||
- if [ "${TEST}" == "extra" ]; then | ||
start_test "line ending check"; | ||
! find ./ -name "*.py" | xargs file | grep CRLF && | ||
! find ./ -name "*.rst" | xargs file | grep CRLF; | ||
check_output "line ending check"; | ||
fi; | ||
|
||
# Check repo size does not expand too much | ||
- if [ "${TEST}" == "extra" ]; then | ||
start_test "repo size check"; | ||
echo -e "Estimated content size difference = ${SIZE_DIFF} kB" && | ||
test ${SIZE_DIFF} -lt 100; | ||
check_output "repo size check"; | ||
fi; | ||
|
||
# Check for style issues | ||
- if [ "${TEST}" == "extra" ]; then | ||
start_test "style check"; | ||
cd ~/repo-clone && | ||
git reset -q travis-merge-target && | ||
python setup.py style && | ||
check_output "style check"; | ||
fi; | ||
|
||
- cd $TRAVIS_DIR | ||
|
||
# Check install works | ||
- start_test "install test"; | ||
sudo python${PYTHON} setup.py --quiet install; | ||
check_output "install test"; | ||
|
||
# Check double-install fails | ||
# Note the bash -c is because travis strips off the ! otherwise. | ||
- start_test "double install test"; | ||
bash -c "! sudo python${PYTHON} setup.py --quiet install"; | ||
check_output "double install test"; | ||
|
||
# Check we can import pg | ||
- start_test "import test"; | ||
echo "import sys; print(sys.path)" | python && | ||
cd /; echo "import pyqtgraph.examples" | python; | ||
check_output "import test"; | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
Contributions to pyqtgraph are welcome! | ||
|
||
Please use the following guidelines when preparing changes: | ||
|
||
* The preferred method for submitting changes is by github pull request | ||
against the "develop" branch. If this is inconvenient, don't hesitate to | ||
submit by other means. | ||
|
||
* Pull requests should include only a focused and related set of changes. | ||
Mixed features and unrelated changes (such as .gitignore) will usually be | ||
rejected. | ||
|
||
* For major changes, it is recommended to discuss your plans on the mailing | ||
list or in a github issue before putting in too much effort. | ||
|
||
* Along these lines, please note that pyqtgraph.opengl will be deprecated | ||
soon and replaced with VisPy. | ||
|
||
* Writing proper documentation and unit tests is highly encouraged. PyQtGraph | ||
uses nose / py.test style testing, so tests should usually be included in a | ||
tests/ directory adjacent to the relevant code. | ||
|
||
* Documentation is generated with sphinx; please check that docstring changes | ||
compile correctly. | ||
|
||
* Style guidelines: | ||
|
||
* PyQtGraph prefers PEP8 for most style issues, but this is not enforced | ||
rigorously as long as the code is clean and readable. | ||
|
||
* Use `python setup.py style` to see whether your code follows | ||
the mandatory style guidelines checked by flake8. | ||
|
||
* Exception 1: All variable names should use camelCase rather than | ||
underscore_separation. This is done for consistency with Qt | ||
|
||
* Exception 2: Function docstrings use ReStructuredText tables for | ||
describing arguments: | ||
|
||
``` | ||
============== ======================================================== | ||
**Arguments:** | ||
argName1 (type) Description of argument | ||
argName2 (type) Description of argument. Longer descriptions must | ||
be wrapped within the column guidelines defined by the | ||
"====" header and footer. | ||
============== ======================================================== | ||
``` | ||
|
||
QObject subclasses that implement new signals should also describe | ||
these in a similar table. |
Oops, something went wrong.