Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
Updating read me to remove old text and finished 'To Do's .
  • Loading branch information
nneveu authored Nov 8, 2023
1 parent a854d02 commit a3c2fc3
Showing 1 changed file with 13 additions and 21 deletions.
34 changes: 13 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,39 +1,31 @@
# CAUTION: This repository is a WORK IN PROGRESS, and may not always work as expected!
## THESE TOOLS ARE IN VARIOUS STAGES OF DEVELOPMENT! You are welcome to submit pull requests for any improvements you make.
# CAUTION: This repository is a WORK IN PROGRESS!
## THESE TOOLS ARE IN VARIOUS STAGES OF DEVELOPMENT. You are welcome to submit an issue or pull request for any improvements you would like to see or make.

# About
Various tools to support high level application development at LCLS using python. This is an effort to maintain a single repo that can be referenced for developemnt. These are not polished tools, they still need a lot of work, so please keep that in mind.
Various tools to support high level application development at LCLS using python. This is an effort to maintain a single repo that can be referenced for developemnt.

# lcls-tools
Python tools for LCLS:
* Device API (profile monitors, SC cavities, stoppers, magnets, etc...)
* SLAC Logger
* Custom Math Tools
* Image Processing Tools
* Data processing and fitting tools
* Image collection and processing tools
* Beam calculations (emittance, solenoid alignment corrections, etc...)

# Rules of contribution (and python coding in general)
* Make your code readable (pulling apart syntax can be painful)
# Rules of contribution
* Try to make your code readable
* Add comments whenever possible
* Try your best to adhere to style guidelines set forth in [PEP8](https://www.python.org/dev/peps/pep-0008/)
* Try to be [idiomatic](https://docs.python-guide.org/writing/style), there is a reason people spent time writing these guides.
* Add tests (unittest is used currently, please use unit tests at a bare minimum)
* Focus on extensibility (don't put a bunch of modules/classes into one file or directory and make them reference each other, if you can avoid it)
* Try to understand the purpose of each tool and do not overcomplicate with business logic that can live in an application. These should be small and useful tools/apis with well understood and firm contracts between the api and the user
* Bonus: If you do all of the above in general, you will be a much better coder
* Try to be [idiomatic](https://docs.python-guide.org/writing/style).
* Add tests (unittest is currently used, please use unit tests at a bare minimum)
* Focus on extensibility (don't put a bunch of modules/classes into one file or directory, if you can avoid it)
* Try to understand the purpose of each tool and do not overcomplicate with business logic that can live in an application. These should be small and useful tools/apis with well understood and firm contracts between the api and the user

# Python 3
Python 2 is no longer supported. Please write all new modules in Python 3.7 or above.

# TODO
* Upgrade all main code to python 3.7 or above.
* Use mocks in unittest once we have upgraded
* Update style for everything python3, including asyncio, generators/yield, import changes, etc...
* Actually verify a requirements.txt file covers all dependencies
* Create a CLI tool
* Provide example application using lcls_tools
* Add more examples
* Document with sphinx or mkdocs (resolve doc branch PR)
* Make a robust and somewhat flexible logger module that knows about SLAC things, current logger is very basic
* Update documentation
* Make a robust and somewhat flexible logger module that knows about SLAC things

# Dependancies: See requirements.txt

0 comments on commit a3c2fc3

Please sign in to comment.