Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
189 commits
Select commit Hold shift + click to select a range
adfe55c
convert printer serial traffic to binary for python 3
xloem May 9, 2023
9f36f91
expire serial start message after 100ms
xloem May 9, 2023
d3d19eb
log messages from printer
xloem May 9, 2023
45bf32a
Add: auto_home park_toolhead finish_moves break_and_continue
xloem May 10, 2023
78915e1
Reset serial line number to 0 when started.
xloem May 9, 2023
d8effe7
add printer method to get temperature
xloem May 10, 2023
9ec1614
debug vpython
rtellez700 May 16, 2023
4fbf9cf
debuging vpython
rtellez700 May 16, 2023
1dabf04
Merge branch 'add-features'
rtellez700 May 16, 2023
d98dd62
add square spiral
rtellez700 Aug 26, 2023
1a7711c
version bump
rtellez700 Aug 28, 2023
48d0c14
add plot2d
rtellez700 Aug 28, 2023
d62a06a
allow meander to work w/o providing an evenly divisible spacing
rtellez700 Sep 6, 2023
a1a0872
Merge branch 'add-features'
rtellez700 Sep 7, 2023
aaf3a70
return ax and not plt.show to allow for further modification
rtellez700 Sep 7, 2023
f094d48
v0.2.17
rtellez700 Sep 7, 2023
e98016f
fix bug in meander mode manual
rtellez700 Sep 8, 2023
a896068
change default tail behavior in meander()-- before would add an extra…
rtellez700 Sep 8, 2023
d557222
add serpentine method
rtellez700 Sep 8, 2023
0fd3aca
remove print statement
rtellez700 Sep 8, 2023
a6cf7b6
add dwell and variable turns
rtellez700 Sep 14, 2023
0aa1b17
remove print statement
rtellez700 Sep 14, 2023
4043732
reset MFO at the start of each gcode
rtellez700 Sep 14, 2023
1a97de4
add print time support
rtellez700 Sep 14, 2023
a9f5b75
v bump
rtellez700 Sep 14, 2023
6e8a6e6
bug fix: xyz is None
rtellez700 Sep 14, 2023
4378ef5
display print time on teardown
rtellez700 Sep 14, 2023
d8e9ec9
fix xyz coordinates
rtellez700 Sep 14, 2023
0412323
return original xy pts
rtellez700 Sep 14, 2023
59489ea
add manual support for fine control of starting/ending points on spiral
rtellez700 Sep 14, 2023
c20e1d0
version bump
rtellez700 Sep 14, 2023
73dfdbe
fix typo
rtellez700 Sep 20, 2023
dd95e8a
version bump
rtellez700 Sep 20, 2023
15d135c
make return only if manual mode
rtellez700 Sep 21, 2023
7cb4102
add initial rect_spiral
rtellez700 Sep 21, 2023
fba2485
v bump
rtellez700 Sep 21, 2023
9b43c35
fix typo
rtellez700 Sep 21, 2023
9a1df8d
typo
rtellez700 Sep 21, 2023
13e589c
rect_spiral done
rtellez700 Sep 21, 2023
07c6a17
fix view bug
rtellez700 Oct 6, 2023
e2640a8
v0.2.31
rtellez700 Oct 6, 2023
c3fcc88
add linear extruder support
rtellez700 Oct 12, 2023
e95a02f
dont show print time during unittests
rtellez700 Oct 12, 2023
1722633
update unit tests - half done
rtellez700 Oct 14, 2023
559dc2d
update tests
rtellez700 Oct 23, 2023
885a3ef
update tests
rtellez700 Oct 23, 2023
a626403
update extruding state
rtellez700 Oct 23, 2023
039cfab
version bump
rtellez700 Oct 26, 2023
4932cca
add move_inc support
rtellez700 Oct 26, 2023
93b8023
version bump
rtellez700 Oct 26, 2023
40004a0
fix color support in serpentine function
rtellez700 Nov 29, 2023
864a3d6
throw error if speed isnt specified
rtellez700 Dec 1, 2023
c2341b5
add version checking
rtellez700 Dec 1, 2023
6fc6db6
fix typo
rtellez700 Dec 1, 2023
3e729b2
version bump
rtellez700 Dec 1, 2023
8a9c8de
update readme
rtellez700 Dec 6, 2023
9103813
update todo list
rtellez700 Dec 6, 2023
33caee8
update documentation
rtellez700 Dec 7, 2023
a95ee09
add harvard apparatus pump support
rtellez700 Dec 11, 2023
5662b84
initial docs
rtellez700 Dec 12, 2023
e6d91b9
update docs
rtellez700 Dec 13, 2023
9642a17
change baud rate
rtellez700 Dec 13, 2023
619f967
updated links
rtellez700 Dec 13, 2023
bf3c960
update settings
rtellez700 Dec 13, 2023
87a357e
update to 9600
rtellez700 Dec 13, 2023
d02b889
update docs
rtellez700 Dec 13, 2023
fb7af5a
merge updates
rtellez700 Dec 13, 2023
2b0f3cb
v0.2.38
rtellez700 Dec 13, 2023
36c9d68
Create docs.yml
rtellez700 Dec 13, 2023
adcec4c
Create ci
rtellez700 Dec 13, 2023
4e70aaf
Update ci
rtellez700 Dec 13, 2023
bf13263
Update docs.yml
rtellez700 Dec 13, 2023
cc7c2b3
remove ci
rtellez700 Dec 13, 2023
0f581d3
update gitignore
rtellez700 Dec 13, 2023
7301a96
update gitignore
rtellez700 Dec 14, 2023
77887c7
Merge remote-tracking branch 'origin/main' into add-docs
rtellez700 Dec 14, 2023
c13c5de
Update python-package.yml
rtellez700 Dec 14, 2023
db0f6c8
update docs
rtellez700 Dec 14, 2023
8c8bc72
update tutorials
rtellez700 Dec 15, 2023
8c41cc3
Merge branch 'main' of https://github.com/rtellez700/mecode
rtellez700 Dec 15, 2023
a31dfe3
update docs
rtellez700 Dec 15, 2023
47bdda7
update readme
rtellez700 Dec 15, 2023
2b5a60e
finish examples
rtellez700 Dec 15, 2023
a5a6497
forgot a file
rtellez700 Dec 15, 2023
402cf79
add direct comm example
rtellez700 Dec 15, 2023
9926d57
add extruding status to syringe pump controls s.t. they appear on view()
rtellez700 Dec 19, 2023
544c857
update future todos
rtellez700 Dec 21, 2023
e4c32b8
add 90 deg log pile lattice
rtellez700 Jan 2, 2024
ffa78b9
fix typo
rtellez700 Jan 2, 2024
336325c
fix typos
rtellez700 Jan 2, 2024
35e428b
fix typo
rtellez700 Jan 2, 2024
37e1b8e
fix color bug
rtellez700 Jan 2, 2024
d6c4058
comment out color codes
rtellez700 Jan 2, 2024
21bb08c
refactor to use printing state + add mecode-viewer support
rtellez700 Jan 13, 2024
1624214
add mecode-viewer dep
rtellez700 Jan 13, 2024
022819f
add badges
rtellez700 Jan 14, 2024
3356a71
fix typo
rtellez700 Jan 14, 2024
f6331e5
add badges to docs
rtellez700 Jan 14, 2024
1ffafb9
update docs
rtellez700 Jan 15, 2024
1e10ed9
test working now, some arc ones skipped
rtellez700 Jan 15, 2024
d221e25
version bump
rtellez700 Jan 15, 2024
0144bf2
fix bug w/ reseting pressure back to previous value w/o overwritting
rtellez700 Jan 15, 2024
019d879
update default color
rtellez700 Jan 16, 2024
19ba5bd
update use of matplotlib in gen_geometry
rtellez700 Jan 17, 2024
d314e23
updates
rtellez700 Jan 17, 2024
7d073b5
initial export_points complete
rtellez700 Jan 18, 2024
31c6740
v0.3.5
rtellez700 Jan 18, 2024
a341d2c
update docs
rtellez700 Jan 18, 2024
00d4fca
update docs
rtellez700 Jan 18, 2024
39e25ae
add view droplet support
rtellez700 Jan 19, 2024
7d36beb
fix: pass hide_travel to mecode_viewer
rtellez700 Feb 6, 2024
ce16b39
v0.3.9
rtellez700 Feb 6, 2024
b5adc5a
v0.3.10
rtellez700 Feb 6, 2024
422fa8d
update broken link
rtellez700 Apr 26, 2024
e7ec0a9
bug fix: printing should be false when pdisp is True and value=0
rtellez700 Apr 27, 2024
276d923
bump dep version
rtellez700 Apr 27, 2024
077ef38
v0.3.12
rtellez700 Apr 27, 2024
39470fd
add end of line comment support
rtellez700 Apr 28, 2024
743de67
bug fix with viewer
rtellez700 May 10, 2024
7ac57d3
fix: fixes issue when redefining origin during a print and not displa…
rtellez700 May 31, 2024
9d09575
add missed linearize arg to arc call from circle
Gromina Jun 2, 2024
e7d5ace
fix tests which were failing because of missed semicolon
Gromina Jun 2, 2024
d634c95
Merge pull request #7 from Gromina/main
rtellez700 Aug 20, 2024
eb1d840
Merge pull request #6 from xloem/get-temp
rtellez700 Aug 20, 2024
1deea61
Merge pull request #2 from xloem/binary-serial
rtellez700 Aug 20, 2024
b5a1068
Merge pull request #3 from xloem/no-serial-start-message
rtellez700 Aug 20, 2024
30e0bb3
Merge pull request #4 from xloem/printer-echo-output
rtellez700 Aug 20, 2024
9ac2a62
Merge pull request #5 from xloem/home_park_break
rtellez700 Aug 20, 2024
996f302
fix typo
rtellez700 Aug 20, 2024
e310099
fix typo
rtellez700 Aug 20, 2024
1f91543
updates node version
rtellez700 Aug 20, 2024
a801f35
bump gh actions
rtellez700 Aug 20, 2024
82bec3f
v0.3.16
rtellez700 Aug 20, 2024
a113abc
no longer need to decode in python 3
rtellez700 Aug 21, 2024
93d2ed2
make encoding type clear
rtellez700 Aug 21, 2024
41cd3e0
fix np.matrix deprecation issue
rtellez700 Aug 21, 2024
90ac857
properties should be set
rtellez700 Aug 21, 2024
1447899
fix relative import
rtellez700 Aug 21, 2024
7391388
fix legacy matrix AttributeError
rtellez700 Aug 21, 2024
c25f72f
fix test_main issues
rtellez700 Aug 22, 2024
7119b6d
fixes bug when disconnecting from printer
rtellez700 Aug 22, 2024
327ed59
remove relative import so it work with unittests discover
rtellez700 Aug 22, 2024
95e5fbb
only run on latest python, v3.11 atm
rtellez700 Aug 22, 2024
ddb4457
v0.3.17
rtellez700 Aug 22, 2024
bf30604
initial matrix_v2 draft
rtellez700 Aug 22, 2024
ef67572
update point transformation logic gcode conversion
rtellez700 Aug 22, 2024
1267608
fix matrix unittests and GMatrix refactor complete
rtellez700 Aug 27, 2024
e8be2b6
v0.4.0 - breaking changes with GMatrix
rtellez700 Aug 27, 2024
3eb96eb
add new arc functions
rtellez700 Nov 5, 2024
a5ed06c
v0.4.1
rtellez700 Nov 5, 2024
379d637
add 3d matrix class
rtellez700 Nov 5, 2024
8c7b653
v0.4.2
rtellez700 Nov 5, 2024
7509ac5
add matrix3D to docs
rtellez700 Nov 5, 2024
3ae4434
add support for arbitrary rotation transformation via Rodrigues' formula
rtellez700 Nov 6, 2024
574337f
v0.4.3
rtellez700 Nov 6, 2024
e75c364
update docs
rtellez700 Nov 6, 2024
e3ac366
improve g.view() documentation
rtellez700 Nov 6, 2024
6b0872e
bump mecode-viewer dep to v0.3.13. fixes issue where colors from g.mo…
rtellez700 Nov 6, 2024
7db15dd
v0.4.4
rtellez700 Nov 6, 2024
9776741
bump mecode-viewer version
rtellez700 Nov 6, 2024
39247f4
initial hatch configuration
rtellez700 Nov 6, 2024
d2a4737
add get_version
rtellez700 Nov 6, 2024
d9b20ac
v0.4.6
rtellez700 Nov 6, 2024
5f6679b
add mike config for docs
rtellez700 Nov 6, 2024
aab51eb
add mike to gh action for docs
rtellez700 Nov 6, 2024
a05e3e4
fix typo
rtellez700 Nov 6, 2024
3267d06
add mike to pip install
rtellez700 Nov 6, 2024
37cbb16
v0.4.7
rtellez700 Nov 6, 2024
a2e5b33
bug fix in arc function
rtellez700 Nov 6, 2024
fc1fe7b
v0.4.8
rtellez700 Nov 6, 2024
eed8a5e
fix version matching
rtellez700 Nov 6, 2024
a073a25
v0.4.9
rtellez700 Nov 6, 2024
781d15b
add mecode version to gcode
rtellez700 Nov 7, 2024
b43fb92
add mecode version to header
rtellez700 Nov 7, 2024
7ac0b2c
v0.4.11
rtellez700 Nov 7, 2024
4425bfe
v0.4.12
rtellez700 Nov 7, 2024
ef8c160
Fix formatting with ruff
rtellez700 Nov 7, 2024
487bba1
v0.4.13
rtellez700 Nov 7, 2024
2296057
add ruff badge
rtellez700 Nov 7, 2024
bd5687a
check version only if not running unittests
rtellez700 Nov 7, 2024
dbc7ec1
update serial switchinterval to speed up unittests
rtellez700 Nov 8, 2024
245f834
fix typo
rtellez700 Nov 8, 2024
f3f9aff
fix logic for move with rotation vector k
rtellez700 Nov 8, 2024
ee01898
fix version matching regex
rtellez700 Nov 8, 2024
e0080f8
v0.4.14
rtellez700 Nov 8, 2024
34477e0
fix relative motion transformation
rtellez700 Nov 8, 2024
247aca3
v0.4.15
rtellez700 Nov 8, 2024
e15f673
remove logic
rtellez700 Nov 8, 2024
fe8a50f
v0.4.16
rtellez700 Nov 8, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 46 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: ci
on:
push:
branches:
- master
- main

permissions:
contents: write

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Configure Git Credentials
run: |
git config user.name github-actions[bot]
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
- uses: actions/setup-python@v5
with:
python-version: 3.x
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
- uses: actions/cache@v4
with:
key: mkdocs-material-${{ env.cache_id }}
path: .cache
restore-keys: |
mkdocs-material-
- run: pip install mkdocs-material
- run: pip install 'mkdocstrings[python]'
- run: pip install . # install local mecode
- run: pip install mike
# Install hatch
- run: pip install hatch # Ensure hatch is installed

# Step to get version dynamically using hatch
- name: Get version from hatch
id: get_version
run: |
VERSION=$(hatch version)
echo "VERSION=$VERSION" >> $GITHUB_ENV
echo "Version: $VERSION"

- run: mkdocs build # Build the documentation
- run: mike deploy ${{ env.VERSION }} -m "Deploy version ${{ env.VERSION }}" --update-aliases latest # Deploy using mike
17 changes: 10 additions & 7 deletions .github/workflows/python-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,22 @@ name: Python package

on:
push:
branches: [ "master" ]
branches:
- master
- main
pull_request:
branches: [ "master" ]
branches:
- master
- main

jobs:
build:

strategy:
fail-fast: false
fail-fast: true
matrix:
host-os: ["ubuntu-latest", "macos-latest", "windows-latest"]
# python-version: ["2.7","3.4","3.5","3.6","3.7","3.8","3.9","3.10"]
python-version: ["3.7","3.8","3.9","3.10"]
python-version: ["3.11"]

runs-on: ${{ matrix.host-os }}

Expand All @@ -26,9 +29,9 @@ jobs:
shell: bash -l {0}

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v3
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
site
.delete

*.log
Expand Down
10 changes: 10 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
# Ruff version.
rev: v0.7.2
hooks:
# Run the linter.
- id: ruff
args: [ --fix ]
# Run the formatter.
- id: ruff-format
13 changes: 13 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"yaml.schemas": {
"https://squidfunk.github.io/mkdocs-material/schema.json": "mkdocs.yml"
},
"yaml.customTags": [
"!ENV scalar",
"!ENV sequence",
"!relative scalar",
"tag:yaml.org,2002:python/name:material.extensions.emoji.to_svg",
"tag:yaml.org,2002:python/name:material.extensions.emoji.twemoji",
"tag:yaml.org,2002:python/name:pymdownx.superfences.fence_code_format"
]
}
File renamed without changes.
93 changes: 18 additions & 75 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
Mecode
======
`

[![Unit Tests](https://github.com/rtellez700/mecode/actions/workflows/python-package.yml/badge.svg)](https://github.com/rtellez700/mecode/actions/workflows/python-package.yml)
[![Hatch project](https://img.shields.io/badge/%F0%9F%A5%9A-Hatch-4051b5.svg)](https://github.com/pypa/hatch)
[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
![](https://img.shields.io/badge/python-3.10+-blue.svg)
![Status](https://img.shields.io/badge/status-maintained-yellow.svg)
[![](https://img.shields.io/github/license/rtellez700/mecode.svg)](https://github.com/rtellez700/mecode/blob/main/LICENSE.md)


### GCode for all

Expand Down Expand Up @@ -44,67 +50,11 @@ with G(outfile='file.gcode') as g:

When the `with` block is exited, `g.teardown()` will be automatically called.

The resulting toolpath can be visualized in 3D using the `mayavi` or `matplotlib`
package with the `view()` method:

```python
g = G()
g.meander(10, 10, 1)
g.view()
```

The graphics backend can be specified when calling the `view()` method, e.g. `g.view('matplotlib')`.
`mayavi` is the default graphics backend.

All GCode Methods
-----------------

All methods have detailed docstrings and examples.

* `set_home()`
* `reset_home()`
* `feed()`
* `dwell()`
* `home()`
* `move()`
* `abs_move()`
* `arc()`
* `abs_arc()`
* `rect()`
* `meander()`
* `clip()`
* `triangular_wave()`

Matrix Transforms
-----------------

A wrapper class, `GMatrix` will run all move and arc commands through a
2D transformation matrix before forwarding them to `G`.

To use, simply instantiate a `GMatrix` object instead of a `G` object:

```python
g = GMatrix()
g.push_matrix() # save the current transformation matrix on the stack.
g.rotate(math.pi/2) # rotate our transformation matrix by 90 degrees.
g.move(0, 1) # same as moves (1,0) before the rotate.
g.pop_matrix() # revert to the prior transformation matrix.
```

The transformation matrix is 2D instead of 3D to simplify arc support.

Renaming Axes
-------------

When working with a machine that has more than one Z-Axis, it is
useful to use the `rename_axis()` function. Using this function your
code can always refer to the vertical axis as 'Z', but you can dynamically
rename it.

Installation
------------

*Outdated* The easiest method to install mecode is with pip:
The easiest method to install mecode is with pip:

```bash
pip install git+https://github.com/rtellez700/mecode.git
Expand All @@ -119,31 +69,24 @@ $ pip install -r requirements.txt
$ python setup.py install
```

Optional Dependencies
---------------------
The following dependencies are optional, and are only needed for
visualization. An easy way to install them is to use [conda][1].
Documentation
-------------

* numpy
* matplotlib
* vpython
* mayavi
Full documentation can be found at [https://rtellez700.github.io/mecode/](https://rtellez700.github.io/mecode/)

[1]: https://www.anaconda.com/

TODO
----

- [ ] add pressure box comport to `__init__()` method
- [ ] build out multi-nozzle support
- [ ] include multi-nozzle support in view method.
- [ ] factor out aerotech specific methods into their own class
- [ ] auto set MFO=100% before each print
- [x] add formal documentation
- [x] create github page
- [x] build out multi-nozzle support
- [x] include multi-nozzle support in view method
- [ ] add ability to read current status of aerotech
- [ ] turn off omnicure after aborted runs
- [ ] add formal sphinx documentation
- [ ] create github page

- [ ] add support for identifying part bounds and specifying safe post print "parking"
- [ ] add support for auto-generating aerotech specific functions only if needed.
- [ ] add support for easily adding new serial devices: (1) pyserial-based, (2) aerotech, or (3) other??

Credits
-------
Expand Down
Empty file.
1 change: 1 addition & 0 deletions docs/api-reference/matrix.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
::: mecode.matrix
1 change: 1 addition & 0 deletions docs/api-reference/matrix3D.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
::: mecode.matrix3D
1 change: 1 addition & 0 deletions docs/api-reference/mecode.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
::: mecode.main
1 change: 1 addition & 0 deletions docs/api-reference/printer.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
::: mecode.printer
1 change: 1 addition & 0 deletions docs/api-reference/profilometer_parse.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
::: mecode.profilometer_parse
Binary file added docs/assets/images/MM_cylinder_example.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/images/adv_visual_example.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/images/droplet_example.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/images/multilayer_example.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/images/visualization_example.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
103 changes: 103 additions & 0 deletions docs/contributing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
!!! warning

This document is a work in progress.


Contributions are welcome, and they are greatly appreciated! Every
little bit helps, and credit will always be given.

You can contribute in many ways:

### Types of Contributions

#### Report Bugs


Report bugs at [github.com/rtellez700/mecode/issues](https://github.com/rtellez700/mecode/issues).

If you are reporting a bug, please include:

* Any details about your local setup that might be helpful in troubleshooting.
* Detailed steps to reproduce the bug.

#### Fix Bugs

Look through the GitHub issues for bugs. Anything tagged with "bug"
is open to whoever wants to implement it.

#### Implement Features

Look through the GitHub issues for features. Anything tagged with "feature"
is open to whoever wants to implement it.

#### Write Documentation

[`mecode`](https://github.com/rtellez700/mecode) could always use more documentation, whether
as part of the official [`mecode`](https://github.com/rtellez700/mecode) docs, in docstrings,
or even on the web in blog posts, articles, and such.

#### Submit Feedback

The best way to send feedback is to file an issue at [github.com/rtellez700/mecode/issues](https://github.com/rtellez700/mecode/issues).

If you are proposing a feature:

* Explain in detail how it would work.
* Keep the scope as narrow as possible, to make it easier to implement.
* Remember that this is a volunteer-driven project, and that contributions
are welcome :)

## Get Started!


Ready to contribute? Here's how to set up `mecode` for local development.

1. Fork the `mecode` repo on GitHub.
2. Clone your fork locally::
```bash
git clone git@github.com:your_name_here/mecode.git
```

3. Install your local copy into a virtualenv. Assuming you have virtualenvwrapper installed, this is how you set up your fork for local development:
```bash
mkvirtualenv mecocde
cd mecocde/
python setup.py develop
```

4. Create a branch for local development:
```bash
git checkout -b name-of-your-bugfix-or-feature
```

Now you can make your changes locally.

5. When you're done making changes, check that your changes pass flake8 and the tests, including testing other Python versions with tox:
```bash
$ flake8 mecode tests
$ python setup.py test
$ tox
```

To get flake8 and tox, just pip install them into your virtualenv.

6. Commit your changes and push your branch to GitHub:
```bash
$ git add .
$ git commit -m "Your detailed description of your changes."
$ git push origin name-of-your-bugfix-or-feature
```

7. Submit a pull request through the GitHub website.

## Pull Request Guidelines

Before you submit a pull request, check that it meets these guidelines:

1. The pull request should include tests.
2. If the pull request adds functionality, the docs should be updated. Put
your new functionality into a function with a docstring, and add the
feature to the list in [README.md](https://github.com/rtellez700/mecode/README.md).
3. The pull request should work for Python 3.3, 3.4, 3.5 and for PyPy. Check
https://travis-ci.org/rtellez700/mecode/pull_requests
and make sure that the tests pass for all supported Python versions.
Loading