Closed EvanKirshenbaum closed 5 months ago
This issue was referenced by the following commits before migration:
One thing I'm noticing is that in doing the refactoring, I'm rendering a bunch of the doc comments wrong. That should be fixed.
Pretty much everything that isn't strictly DMF-related is now either in erk
or quantities
. There are new modules: quantities.ticks
and erk.
sched
, grid
, monitored
, color
, sample
, loglevel
, and afs
. Things like Missing
are now in erk.basic
. cmd_line
is now in erk
. A bunch of unused classes are gone.
Still to do:
WaitableType
still include NO_WAIT
. I think I want to remove that and just use the normal Optional
.include quantities
or include erk
to get at least the most common stuff.types.py
to something like dmf.py
The directory structure now seems right for publication:
mpdl
and physl
folders are gone.mpam
folders have been moved to top level, with mpam/doc
renamed to api-doc
mpam
package is now dml
.erk
has been renamed to sifu
("Stuff I Find Useful", which appears to be available on PyPi
.quantities
is now erk.quant
.sifu
-related tools from dev-tools
are now in sifu-tools
.src/lang
, dev-tools
, and sifu-tools
have support
packages. (tools
already had one.)sifu
and dmf
packages now use package-relative importing.tests
folder has been removed from the repo. (None of it was useful regression test.)Still to be done:
inputs
and opentrons
.license.txt
file.README
file.I think we're probably as close to ready as we'll be. The LICENSE.md
file is now there, and there's a README.md
file that both explains the repo and also gives basic instructions for installing and running, as well as a bit on a few development tasks and an explanation about why the issues list will look so weird.[^issues]
[^issues]: GitHub really doesn't make it easy to migrate issues from one repo to another. I knew I was going to have to write programs to fetch them from the internal repo and push them to the public one, but I didn't realize that it was going to assert that all of the issues and comments were made by me and not allow me to back-date them. So I had to add text identifying when they actually happened. Then the commits happened earlier, so they don't show up on the pages for the issues they refer to, so I had to add extra comments for those. Then I had to put any images in the repo so they could be referred to. (They were added in commit cc0e7b9448ff2c4272e28dd5b7aba4a45679aeeb in folder migrated-issue-images
and then taken out the next commit. The comments refer directly to that commit.) Then I found out that the public GitHub's secondary rate limit means that I can't do the upload at once and have to wait about an hour between batches. Sigh.
I got rid of everything from the doc
directory except for the DML manual (which got a couple of problems fixed and changed the copyright notice), and I pruned the opentrons
dir of everything other than what's needed to run the protocol. For the inputs
folder, I got rid of the stuff that I knew was mine, but I left in all of the other stuff, because I don't know who relies on it. That should be cleaned up, too (#310), and I left a README.md
file there to that effect.
I have not gone through any of the actual code to prune commented-out blocks or get rid of printed or logged messages. That will have to wait.
Now that I've gotten word that the decision has been made to open-source the codebase, it seems as though it would be a good time to do a bit of refactoring in the code base, with the goals of
erk
andquantities
packages to be forked off to a different repo and made available throughpip
andmpam
(i.e., not pretending that anything else is part ofthylacine
)DML
language, and devices.For
PyPI
reasons, we will probably want to renameerk
toerktools
andquantities
to something likedquant
, since we can't reuse a name that somebody else already has inpip
.As part of the splitting, I want to go through the code, especially through
types.py
andtype_supp.py
and move pretty much everything that isn't DMF-specific to eithererk
orquantities
. This will include things likeDelayed
andOperations
(probably to asched
subpackage) as well asMissing
. The goal is to have as much as possible outside of the DMF repo.I also want to make it so that most of the commonly used things can be imported from the packages directly (via their
__init__.py
files) and discourage especially going througherk.basic
andquantities.core
or.dimensions
. Since the latter is automatically generated usinggen_dims.py
, it would be nice to be able to simply sayfrom .dimensions import *
, but if we do that, we'll probably want to add an__all__
at the beginning to make it so that only pulls in the dimension classes themselves.Also, to avoid polluting namespaces on imports, I'll want to do a pass through and make sure that anything that isn't something we want people to import (especially
TypeVar
s) start with single underscores.Migrated from internal repository. Originally created by @EvanKirshenbaum on Sep 29, 2023 at 3:01 PM PDT. Closed on Jan 29, 2024 at 9:29 AM PST.