Skip to content

Commit

Permalink
Merge 211be0e into 9095618
Browse files Browse the repository at this point in the history
  • Loading branch information
sneakers-the-rat committed Jun 2, 2022
2 parents 9095618 + 211be0e commit b5de754
Show file tree
Hide file tree
Showing 243 changed files with 15,561 additions and 7,763 deletions.
7 changes: 0 additions & 7 deletions .gitmodules

This file was deleted.

7 changes: 5 additions & 2 deletions .readthedocs.yml
Expand Up @@ -19,6 +19,9 @@ formats:

# Optionally set the version of Python and requirements required to build your docs
python:
version: 3.7
version: 3.8
install:
- requirements: requirements/requirements_docs.txt
- method: pip
path: .
extra_requirements:
- docs
14 changes: 3 additions & 11 deletions .travis.yml
Expand Up @@ -38,13 +38,8 @@ env:
- DISPLAY=":99.0" QT_DEBUG_PLUGINS=1 # https://pytest-qt.readthedocs.io/en/latest/troubleshooting.html?highlight=travis#xvfb-assertionerror-timeouterror-when-using-waituntil-waitexposed-and-ui-events

install:
- pip install -U pip
- pip install -U pytest
- pip install -U pytest-cov
- pip install -U pylint
- pip install -U coveralls
- pip install -U pytest-qt~=3.3.0
- pip install -e .
- pip install --upgrade setuptools importlib_metadata
- pip install .[tests]
- "/sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -screen 0 1920x1200x24 -ac +extension GLX +render -noreset"
- sleep 3

Expand All @@ -63,17 +58,14 @@ after_script:
- coverage combine --append
- coveralls

before_deploy:
- pip install scikit-build

deploy:
provider: pypi
username: __token__
pasword:
secure: mIaKgOMl4tjUvLlpSGwbuUj2A7QK0nMnQzlYygdVN5vCuvXnggScytqwXNqjSqjB3cn0R4EKllCfnREsIqBgYrEsRCRIexwLuz58KDo6qjSad/ycpCjmtz/6nvuJp3I2iJGudzCZ/W1MCpz0ExAvvHXm7k0U4J831bK+mFYqe8RHJxcAuYMJndEUaD5s/Ly+ozqJYx3H9+f/fggpVAlGu/oy5p77so9vQA0xvayodQKzL1XGvNHBXMEKtBtEN33pTKDbOY3bQ7GR0WLE7pd+bg1rZ/r5EsvlHAlHR/rSCWDNq4K0Qk3ZyUeHLX9UjKIImXbhMMyNSyz98DkgUd/TkfGG2K2jyKd7WR1KqOrNjy+clqTdyj1fcHtm8au6YsvYLvR9qmO1prwrGq1vMH0/qvOrcM3+OU3hGdUwtjth3F+TTsc57O22qHjpeq/xlWtFC8vAF92ZHzPWW6xBApYB3+MJZHh27LJL/rdbAv/WoYPZbQWiqxNm869GCaSzjBGZ/Zx5BPpGbJUb8N+pBHgow3gww2TMS1C7W3gDVPm42DL8ehhOEJZBT9FIfzAooeyxzyvUb6gSdtshGUuJPe8HdZhNn5n4rFuSoZ7edCbEEM7bQ/gqOJK9Ccr+4yi/9MHBXB7LsjB32tzlxbsEePG18ac85wJp1Z64QYMpzV5DAi0=
on:
tags: true
branch: master
branch: main
condition: "$TRAVIS_PYTHON_VERSION = 3.9"
distributions: "sdist"

2 changes: 1 addition & 1 deletion CITATION.cff
Expand Up @@ -17,7 +17,7 @@ doi: "10.1101/807693"
keywords:
license: "MPL-2.0"
message: "If you use this software, please cite it using these metadata."
repository-code: "https://github.com/wehr-lab/autopilot"
repository-code: "https://github.com/auto-pi-lot/autopilot"
title: "Autopilot: Automating behavioral experiments with lots of Raspberry Pis"
version: "0.4.4"
...
3 changes: 0 additions & 3 deletions MANIFEST.in

This file was deleted.

22 changes: 11 additions & 11 deletions README.md
Expand Up @@ -9,8 +9,8 @@
Status:

[![Documentation Status](https://readthedocs.org/projects/auto-pi-lot/badge/?version=latest)](https://docs.auto-pi-lot.com/en/latest/?badge=latest)
[![Travis (.com) branch](https://img.shields.io/travis/com/wehr-lab/autopilot/main)](https://app.travis-ci.com/github/wehr-lab/autopilot/branches)
[![Coveralls branch](https://img.shields.io/coveralls/github/wehr-lab/autopilot/main)](https://coveralls.io/github/wehr-lab/autopilot)
[![Travis (.com) branch](https://img.shields.io/travis/com/auto-pi-lot/autopilot/main)](https://app.travis-ci.com/github/auto-pi-lot/autopilot/branches)
[![Coveralls branch](https://img.shields.io/coveralls/github/auto-pi-lot/autopilot/main)](https://coveralls.io/github/auto-pi-lot/autopilot)
![Jonny Status](https://img.shields.io/badge/jonny-dissertating-critical)


Expand All @@ -19,9 +19,9 @@ Status:

![Autopilot Banner Logo](docs/_images/autopilot_logo_banner.png)

| [Docs](https://docs.auto-pi-lot.com) | [Paper](https://www.biorxiv.org/content/10.1101/807693v1) | [Forum](https://github.com/wehr-lab/autopilot/discussions) | [Wiki](https://wiki.auto-pi-lot.com) |
| [Docs](https://docs.auto-pi-lot.com) | [Paper](https://www.biorxiv.org/content/10.1101/807693v1) | [Forum](https://github.com/auto-pi-lot/autopilot/discussions) | [Wiki](https://wiki.auto-pi-lot.com) |
| :-: | :-: | :-: | :-: |
| [![Read the Docs](docs/_images/docs_link.png)](https://docs.auto-pi-lot.com) | [![Paper](docs/_images/paper_link.png)](https://www.biorxiv.org/content/10.1101/807693v1) | [![Forum](docs/_images/discussion_link.png)](https://github.com/wehr-lab/autopilot/discussions) | [![Wiki](docs/_images/hardware_link.png)](https://wiki.auto-pi-lot.com)
| [![Read the Docs](docs/_images/docs_link.png)](https://docs.auto-pi-lot.com) | [![Paper](docs/_images/paper_link.png)](https://www.biorxiv.org/content/10.1101/807693v1) | [![Forum](docs/_images/discussion_link.png)](https://github.com/auto-pi-lot/autopilot/discussions) | [![Wiki](docs/_images/hardware_link.png)](https://wiki.auto-pi-lot.com)

Autopilot is a Python framework for performing complex, hardware-intensive behavioral experiments with swarms of networked Raspberry Pis.
As a tool, it provides researchers with a toolkit of flexible modules to design experiments without rigid programming & API limitations.
Expand Down Expand Up @@ -91,7 +91,7 @@ python3 -m autopilot.setup.setup
![Autopilot Setup Console](docs/_images/installer.png)

All of Autopilot is quite new, so bugs, incomplete documentation, missing features are very much expected! Don't be shy about
[raising issues](https://github.com/wehr-lab/autopilot/issues) or [asking questions in the forum](https://github.com/wehr-lab/autopilot/discussions).
[raising issues](https://github.com/auto-pi-lot/autopilot/issues) or [asking questions in the forum](https://github.com/auto-pi-lot/autopilot/discussions).


# Development Status
Expand All @@ -102,17 +102,17 @@ Jonny is trying to graduate! Autopilot will be slow and maybe a little chaotic u

We're working on a formal contribution system, pardon the mess! Until we get that and our CI coverage up, `main` will lag a bit behind the development branches:

* [`dev`](https://github.com/wehr-lab/autopilot/tree/dev) - main development branch that collects hotfixes, PRs, etc. Unstable but usually has lots of extra goodies
* [`hotfix`](https://github.com/wehr-lab/autopilot/tree/hotfix) - branches from `dev` for building and testing hotfixes, PRs back to `dev`.
* [`lab`](https://github.com/wehr-lab/autopilot/tree/lab) - branches from `dev` but doesn't necessarily PR back, the local branch used in the maintaining ([Wehr](http://uoneuro.uoregon.edu/wehr/)) lab
* [`parallax`](https://github.com/wehr-lab/autopilot/tree/parallax) - experimental departure from `dev` to implement a particular experiment and rebuild a lot of components along the way, will eventually return to `dev` <3
* [`dev`](https://github.com/auto-pi-lot/autopilot/tree/dev) - main development branch that collects hotfixes, PRs, etc. Unstable but usually has lots of extra goodies
* [`hotfix`](https://github.com/auto-pi-lot/autopilot/tree/hotfix) - branches from `dev` for building and testing hotfixes, PRs back to `dev`.
* [`lab`](https://github.com/auto-pi-lot/autopilot/tree/lab) - branches from `dev` but doesn't necessarily PR back, the local branch used in the maintaining ([Wehr](http://uoneuro.uoregon.edu/wehr/)) lab
* [`parallax`](https://github.com/auto-pi-lot/autopilot/tree/parallax) - experimental departure from `dev` to implement a particular experiment and rebuild a lot of components along the way, will eventually return to `dev` <3

## Short-Term

See the short-term development goals in our version milestones:

* [`v0.4.0`](https://github.com/wehr-lab/autopilot/milestone/1) - Implement registries to separate user code extensions like tasks and local hardware devices in a user directory, preserve source code in produced data so local development isn't lost.
* [`v0.5.0`](https://github.com/wehr-lab/autopilot/milestone/2) - Make a unitary inheritance structure from a root Autopilot object such that a) common operations like logging and networking are implemented only once, b) the plugin system for `v0.4.0` can not only add new objects, but replace core objects while maintaining provenance (ie. no monkey patching needed), c) object behavior that requires coordination across multiple instances gets much easier, making some magical things like self-healing self-discovering networking possible. This will also include a major refactoring of the code structure, finally breaking up some of the truly monstrous thousand-line modules in `core` into an actually modular system we can build from <3
* [`v0.4.0`](https://github.com/auto-pi-lot/autopilot/milestone/1) - Implement registries to separate user code extensions like tasks and local hardware devices in a user directory, preserve source code in produced data so local development isn't lost.
* [`v0.5.0`](https://github.com/auto-pi-lot/autopilot/milestone/2) - Make a unitary inheritance structure from a root Autopilot object such that a) common operations like logging and networking are implemented only once, b) the plugin system for `v0.4.0` can not only add new objects, but replace core objects while maintaining provenance (ie. no monkey patching needed), c) object behavior that requires coordination across multiple instances gets much easier, making some magical things like self-healing self-discovering networking possible. This will also include a major refactoring of the code structure, finally breaking up some of the truly monstrous thousand-line modules in `core` into an actually modular system we can build from <3

## Long-Term

Expand Down
17 changes: 16 additions & 1 deletion autopilot/__init__.py 100644 → 100755
@@ -1,5 +1,20 @@
__author__ = 'Jonny Saunders <j@nny.fyi>'
__version__ = '0.4.4'

import sys
if sys.version_info < (3,8):
from importlib_metadata import version
# monkeypatch typing
import typing
from typing_extensions import Literal
typing.Literal = Literal
else:
from importlib.metadata import version


__version__ = version("auto-pi-lot")

from autopilot.root import Autopilot_Type, Autopilot_Pref


from autopilot.setup import setup_autopilot
from autopilot.utils.registry import get, get_task, get_hardware, get_names
Expand Down
File renamed without changes.
28 changes: 28 additions & 0 deletions autopilot/agents/base.py
@@ -0,0 +1,28 @@
"""
Base Agent class.
Currently a stub just to get them in the object hierarchy
"""

from autopilot.root import Autopilot_Object


class Agent(Autopilot_Object):
"""
Metaclass for agent types.
Currently a stub, but will provide hooks for basic lifecycle methods of agents:
* ``pre_init`` - to be run before any other standard initialization
* ``init`` - main initialization hook
* ``init_external`` - initialize external processes
* ``post_init`` - to be run after other initialization
* ... to be continued
And core class and instance attributes:
* ``prefs`` - prefs that are needed to configure this agent
* ``processes`` - processes spawned by this agent
* ``listens`` - methods to handle messages sent to this agent
* ``dependencies`` - additional optional python packages or system configurations that this agent depends on.
"""

0 comments on commit b5de754

Please sign in to comment.