Skip to content

Instantly share code, notes, and snippets.

View GenevieveBuckley's full-sized avatar

Genevieve Buckley GenevieveBuckley

  • Monash University
  • Melbourne
View GitHub Profile
@GenevieveBuckley
GenevieveBuckley / 2to3
Created April 30, 2019 07:19
Converting python 2 code to python 3
For the whole repository:
$ 2to3 --output-dir=python3-version/mycode -W -n python2-version/mycode
For a single file:
$ 2to3 filename.py
# See details at:
# https://docs.python.org/2/library/2to3.html
# Stack overflow
@GenevieveBuckley
GenevieveBuckley / python_wheels.txt
Created May 1, 2019 00:28
Creating python wheels
# Installing a python wheel
pip install some-package.whl
# Creating a python wheel
pip wheel --wheel-dir=path/to/save/wheel wheel_filename
# See https://python101.pythonlibrary.org/chapter39_wheels.html
# PEP427 (describes the wheel format)
@GenevieveBuckley
GenevieveBuckley / .gitignore
Created May 2, 2019 02:03
Python .gitignore template file
# Sphinx docs
docs/_build
# Logging
logs/*
!logs/.gitkeep
# Testing and coverage
cov.xml
.pytest_cache/
@GenevieveBuckley
GenevieveBuckley / python_builds.txt
Created May 21, 2019 06:09
Building wheels and exe files with python
# Build a wheel (outputs to dist/ directory)
python setup.py sdist bdist_wheel
# Build with pyinstaller
pyinstaller myfile.spec -w -F -y
## If no spec file currently exists
pyinstaller mypackage/main.py
@GenevieveBuckley
GenevieveBuckley / app.py
Created June 13, 2019 06:49
Non-blocking PyQt while loop callback using threading
"""Example of a non-blocking PyQt while loop callback using threading
Example adapted from this StackOverflow answer:
https://stackoverflow.com/questions/22340230/python-pyqt-how-run-while-loop-without-locking-main-dialog-window?answertab=votes#tab-top
Ported from PyQt4 to PyQt5 using the tool pyqt4topyqt5:
https://github.com/rferrazz/pyqt4topyqt5
"""
import os
@GenevieveBuckley
GenevieveBuckley / crosshairs_for_drift_correction.py
Last active June 25, 2019 06:50
Autoscript crosshair pattern for drift correction reference
import numpy as np
import autoscript_toolkit.vision as vision_toolkit
def cut_crosshair_patch(center_coordinate_pixels, image):
"""Returns cropped image region with crosshair drift correction reference.
Parameters
----------
In [60]: microscope.beams.electron_beam.beam_shift.limits
Out[60]: Limits2d(limits_x=Limits(min=-2.0009707e-05,max=2.0009707e-05),limits_y
=Limits(min=-2.0009707e-05,max=2.0009707e-05))
In [61]: microscope.beams.ion_beam.beam_shift.limits
Out[61]: Limits2d(limits_x=Limits(min=-5e-05,max=5e-05),limits_y=Limits(min=-5e-
05,max=5e-05))
@GenevieveBuckley
GenevieveBuckley / logfile.py
Last active July 29, 2019 23:32
Log all uncaught exceptions to file with sys.excepthook
import os
import logging
import sys
import time
import traceback
from mypackage import __version__
def _exception_handler(error_type, error_value, error_traceback):
@GenevieveBuckley
GenevieveBuckley / settings.json
Last active August 19, 2019 06:13
Visual Studio Code settings.json config file
{
"editor.rulers": [
80
],
"autoDocstring.docstringFormat": "numpy",
"python.linting.pylintEnabled": false,
"python.linting.flake8Enabled": true,
"window.zoomLevel": 0,
"python.formatting.provider": "autopep8",
"editor.formatOnSave": true,
@GenevieveBuckley
GenevieveBuckley / .pre-commit-config.yaml
Last active August 23, 2019 03:36
Git pre-commit hooks with black and flake8
repos:
- repo: https://github.com/ambv/black
rev: stable
hooks:
- id: black
language_version: python3.7
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v1.2.3
hooks:
- id: flake8