Diane Trout [Fri, 20 Mar 2015 23:26:04 +0000 (16:26 -0700)]
Use regex to make sure scripts end with the right command
python 3 doesn't seem to return the path to a .pyc file
like python 2.
Diane Trout [Fri, 20 Mar 2015 23:25:20 +0000 (16:25 -0700)]
Use six.moves to find urlencode and urlopen
Diane Trout [Fri, 20 Mar 2015 23:24:55 +0000 (16:24 -0700)]
filter out None c.times in list of potential times
Diane Trout [Fri, 20 Mar 2015 23:23:50 +0000 (16:23 -0700)]
use relative import for submission_test_common
Diane Trout [Fri, 20 Mar 2015 23:22:06 +0000 (16:22 -0700)]
Try to detect if an object is a file type on python python 2 & 3.
The base type for files changed between the two releases.
Diane Trout [Fri, 20 Mar 2015 23:21:35 +0000 (16:21 -0700)]
replace xrange with enumerate
Diane Trout [Fri, 20 Mar 2015 23:19:39 +0000 (16:19 -0700)]
Use ''.splitlines() instead of split('\n')
it seems to handle byte vs text strings a bit better.
Diane Trout [Fri, 20 Mar 2015 23:14:42 +0000 (16:14 -0700)]
adapt to python2 returning lists and python3 iterators
This leads to code like next(iter(obj.values())) instead of
obj.values()[0]. Honestly Im not sure which is less ugly.
Also there's a few places where I have to cast things with list()
to get my tests to pass.
Diane Trout [Fri, 20 Mar 2015 21:46:27 +0000 (14:46 -0700)]
use sorted on the iterator instead of an in-place sort
Diane Trout [Fri, 20 Mar 2015 21:45:29 +0000 (14:45 -0700)]
Use max on the iterator to find the last key
Diane Trout [Fri, 20 Mar 2015 21:24:41 +0000 (14:24 -0700)]
add more from __future__ import print_function, unicode_literals
Diane Trout [Fri, 20 Mar 2015 21:20:27 +0000 (14:20 -0700)]
Call print(msg) instead of print msg
Diane Trout [Fri, 20 Mar 2015 21:19:05 +0000 (14:19 -0700)]
special case unicode handling that differs between python2 & 3
Diane Trout [Fri, 20 Mar 2015 21:18:33 +0000 (14:18 -0700)]
Replace some unicode() with str()
Diane Trout [Fri, 20 Mar 2015 21:13:54 +0000 (14:13 -0700)]
Use isinstance(object, (types)) pattern instead of type(object) == types.Type
Diane Trout [Fri, 20 Mar 2015 20:47:36 +0000 (13:47 -0700)]
Specify text vs binary mode for opening files.
(And another smart_text cast sliped in)
Diane Trout [Fri, 20 Mar 2015 20:42:12 +0000 (13:42 -0700)]
prefer native string types.
Things get really messy when trying to pass unicode strings
to redland in python2. I found it simpler to just try and keep
using the native string type.
So this patch is largely replacing unicode() to str() and
changing u'' to ''.
Diane Trout [Fri, 20 Mar 2015 20:30:36 +0000 (13:30 -0700)]
update more raise exceptions to Exception(message) syntax
Diane Trout [Thu, 19 Mar 2015 21:48:46 +0000 (14:48 -0700)]
Use django.utils.encode smart_text or smart_str for intelligent unicode handling
some things like writing files or talking to redland are
quite picky about whether or not they're unicode or ascii strings.
Diane Trout [Wed, 18 Mar 2015 23:52:28 +0000 (16:52 -0700)]
import urljoin from six.moves.urllib.parse
Diane Trout [Wed, 18 Mar 2015 23:50:34 +0000 (16:50 -0700)]
use JsonResponse instead of making a json response by hand using HttpResponse
Diane Trout [Wed, 18 Mar 2015 23:49:31 +0000 (16:49 -0700)]
drop support for simplejson. were only caring about python 2.7+ and 3.3+
Diane Trout [Wed, 18 Mar 2015 23:46:47 +0000 (16:46 -0700)]
import ConfigParser classes from six.moves.configparser
Diane Trout [Wed, 18 Mar 2015 23:45:08 +0000 (16:45 -0700)]
use absolute_import
Diane Trout [Tue, 3 Feb 2015 00:30:31 +0000 (16:30 -0800)]
new json code returns [] when there are no lanes
Diane Trout [Tue, 3 Feb 2015 00:24:18 +0000 (16:24 -0800)]
convert to unicode_literals
convert all the string handling to unicode.
to make the RDF stuff work I needed to mark those strings
as byte arrays
Diane Trout [Mon, 2 Feb 2015 22:54:28 +0000 (14:54 -0800)]
take advantage of absolute_import to simplify import statements
Diane Trout [Mon, 2 Feb 2015 22:42:32 +0000 (14:42 -0800)]
base64.encodestring needs a bytearray in python3
I needed to use int2byte to safely replace the char()
I was using in python2.
Diane Trout [Mon, 2 Feb 2015 22:40:47 +0000 (14:40 -0800)]
Replace elif list() > int() with else
the expression was always true under python2 and
is a syntax error in python3. Replacing it with
if len(list()) > 0 caused test case failures
so this seemed like the best idea.
Diane Trout [Fri, 30 Jan 2015 21:48:17 +0000 (13:48 -0800)]
properly call usrlib.parse instead of urlparse
Diane Trout [Fri, 30 Jan 2015 21:47:01 +0000 (13:47 -0800)]
Convert alphanum sort from comparitor to key operator
I found a much shorter algorithm over on stackoverflow.
Diane Trout [Thu, 29 Jan 2015 23:44:06 +0000 (15:44 -0800)]
convert from failUnlessEqual to assertEqual
Diane Trout [Thu, 29 Jan 2015 23:43:51 +0000 (15:43 -0800)]
update srf2fastq detection code to work with byte arrays
Diane Trout [Thu, 29 Jan 2015 22:14:57 +0000 (14:14 -0800)]
assume we are writing text with gzip
Diane Trout [Thu, 29 Jan 2015 22:03:49 +0000 (14:03 -0800)]
replace iterkeys with python 3 equivalents
Diane Trout [Thu, 29 Jan 2015 21:59:07 +0000 (13:59 -0800)]
convert has_key to X in dictionary
Diane Trout [Thu, 29 Jan 2015 21:39:32 +0000 (13:39 -0800)]
use six.moves to work around urllib / urllib2 / urlparse to urllib 2to3 cleanup
Diane Trout [Thu, 29 Jan 2015 21:23:39 +0000 (13:23 -0800)]
remove unicode_literals from things going to redland RDF
Diane Trout [Thu, 29 Jan 2015 19:44:16 +0000 (11:44 -0800)]
remove some commented out code
Diane Trout [Thu, 29 Jan 2015 19:43:59 +0000 (11:43 -0800)]
convert some print statements to logger messages
Diane Trout [Thu, 29 Jan 2015 19:43:18 +0000 (11:43 -0800)]
convert to print_function, and start adding unicode_literals future as well
Diane Trout [Thu, 29 Jan 2015 19:39:52 +0000 (11:39 -0800)]
put #!/usr/bin/env python in the right place
Diane Trout [Thu, 29 Jan 2015 19:00:47 +0000 (11:00 -0800)]
remove ,'s from more except blocks, and now a raise too
Diane Trout [Thu, 29 Jan 2015 18:59:48 +0000 (10:59 -0800)]
more use six.moves to import StringIO
Diane Trout [Thu, 29 Jan 2015 18:44:00 +0000 (10:44 -0800)]
use six.moves to get to python3-style urllib
Diane Trout [Thu, 29 Jan 2015 18:42:52 +0000 (10:42 -0800)]
whitespace-cleanup
Diane Trout [Thu, 29 Jan 2015 18:27:17 +0000 (10:27 -0800)]
remove some commented out code
Diane Trout [Thu, 29 Jan 2015 18:26:27 +0000 (10:26 -0800)]
convert to print_function
Diane Trout [Thu, 29 Jan 2015 18:21:04 +0000 (10:21 -0800)]
use force_text instead of force_unicode for python2/3 compatibility
Diane Trout [Thu, 29 Jan 2015 18:20:11 +0000 (10:20 -0800)]
import StringIO from six.moves
Diane Trout [Thu, 29 Jan 2015 00:08:21 +0000 (16:08 -0800)]
use six to work around rename of configparser
Diane Trout [Thu, 29 Jan 2015 00:00:53 +0000 (16:00 -0800)]
Convert old style except blocks to except Exception as variable: blocks
Diane Trout [Wed, 28 Jan 2015 23:32:02 +0000 (15:32 -0800)]
make the search tool more flexible
Diane Trout [Mon, 26 Jan 2015 20:12:21 +0000 (12:12 -0800)]
remove unused code
Diane Trout [Wed, 21 Jan 2015 01:17:04 +0000 (17:17 -0800)]
Update test_retrieve_config to work with factories
Along the way I slightly altered how the species factory
worked which required tweaking test_samples.
For some reason test_sequencer changed slightly.
Diane Trout [Wed, 14 Jan 2015 19:56:01 +0000 (11:56 -0800)]
fix spelling error in module name
Diane Trout [Tue, 13 Jan 2015 19:45:23 +0000 (11:45 -0800)]
Don't pass null authentication information to ENCODED.
the recent build seems unhappy getting auth=(None, None)
and while I was in there, update the domain name.
Diane Trout [Tue, 13 Jan 2015 19:45:01 +0000 (11:45 -0800)]
use absolute_import and print_function
Diane Trout [Tue, 13 Jan 2015 00:12:38 +0000 (16:12 -0800)]
Update inventory tests to use factory boy.
also start prefering reverse instead of hardcoding urls.
Diane Trout [Mon, 12 Jan 2015 18:50:28 +0000 (10:50 -0800)]
move the file type test cases out into their own module
Diane Trout [Mon, 12 Jan 2015 18:49:51 +0000 (10:49 -0800)]
use migrations for experiments, and use migrations to the file type regexes
Diane Trout [Sat, 10 Jan 2015 00:40:40 +0000 (16:40 -0800)]
get_schema_url only works on object types now, so change some code to meet the new api
Diane Trout [Sat, 10 Jan 2015 00:39:11 +0000 (16:39 -0800)]
at some point I added code that used base64, hashlib, and os, but I never imported them
Diane Trout [Sat, 10 Jan 2015 00:35:57 +0000 (16:35 -0800)]
Forgot to disable loading ClusterStation and Sequencer test cases since I moved them out.
Diane Trout [Sat, 10 Jan 2015 00:28:26 +0000 (16:28 -0800)]
Convert experiments modules to use factories instead of fixtures.
And then propogate those changes throughout the test cases
Diane Trout [Sat, 10 Jan 2015 00:16:54 +0000 (16:16 -0800)]
Improve samples_factory generated objects.
* Add LibraryType and MultiplexIndex factories.
* Use factoryboy's fuzzy tools to generate more interesting objects,
especially to avoid problems with Unique=True fields.
* Use django_get_or_create to make it easier to deail with things
like usernames
* Define field values for is_staff and is_superuser for the user model
* Unsurprisingly this required updating some test cases to
be compatible with the changes.
Diane Trout [Sat, 10 Jan 2015 00:15:03 +0000 (16:15 -0800)]
unimportant whitespace changes, at least the lines with text look the same
Diane Trout [Sat, 10 Jan 2015 00:08:25 +0000 (16:08 -0800)]
whitespace changes
Diane Trout [Sat, 10 Jan 2015 00:07:41 +0000 (16:07 -0800)]
fix typo -- or at least make it consistent. antigen -> antigene
Diane Trout [Sat, 10 Jan 2015 00:04:36 +0000 (16:04 -0800)]
move cluster station and sequencer tests out into their own modules
Diane Trout [Sat, 10 Jan 2015 00:00:34 +0000 (16:00 -0800)]
Use logger instead of trying to print to stdout. especially since print_function has a different syntax for doing that
Diane Trout [Fri, 9 Jan 2015 23:59:15 +0000 (15:59 -0800)]
one should only return json objects. so put our arrays inside a minimal object
Diane Trout [Sat, 13 Dec 2014 00:36:36 +0000 (16:36 -0800)]
Merge branch 'django1.7' of mus.cacr.caltech.edu:htsworkflow into django1.7
Conflicts:
htsworkflow/submission/encoded.py
Prefer the multi line
if 'string' in object:
del object['string']
Diane Trout [Sat, 13 Dec 2014 00:34:50 +0000 (16:34 -0800)]
Add document registration class.
Diane Trout [Sat, 13 Dec 2014 00:34:30 +0000 (16:34 -0800)]
add more type checking for parsing object type from an object
Diane Trout [Sat, 13 Dec 2014 00:33:22 +0000 (16:33 -0800)]
add some helpful log messages
Diane Trout [Mon, 1 Dec 2014 19:20:49 +0000 (11:20 -0800)]
add ability to adjust some log level messages
Diane Trout [Mon, 1 Dec 2014 18:57:35 +0000 (10:57 -0800)]
commit script to copy jumpgate sqlite database to felcat postgres
Diane Trout [Mon, 1 Dec 2014 18:56:49 +0000 (10:56 -0800)]
require django 1.7 and factory boy for newer test code
Diane Trout [Fri, 7 Nov 2014 23:24:19 +0000 (15:24 -0800)]
Add some code to help read metadata out of spreadsheets.
also make the schema validator in encoded a bit more forgiving.
Diane Trout [Mon, 3 Nov 2014 22:02:11 +0000 (14:02 -0800)]
forgot to change one test to use factory
Diane Trout [Sat, 1 Nov 2014 00:12:45 +0000 (17:12 -0700)]
The makemigrations code didn't like how I was setting default selections with class methods.
this breaks them out into seperate functions, hopefully less confusing
for the migration code.
Diane Trout [Sat, 1 Nov 2014 00:12:34 +0000 (17:12 -0700)]
name get_query_set was deprecated in favor of get_queryset
Diane Trout [Sat, 1 Nov 2014 00:09:15 +0000 (17:09 -0700)]
Convert samples app to use migrations.
A big problem is that 1.7 migrations cause problems
for the initial data fixture. For whatever reason the
fixture would run before the migration, unsurprisingly
causing trouble.
My choice was either to convert the fixture to a data
migration, or to find another way to generate test data.
Several sources recommended avoiding fixtures for test code
and suggested using something like "factory_boy" to use the
orm to create fake data. So I went ahead and tried an
implementation using that.
Diane Trout [Wed, 29 Oct 2014 17:34:19 +0000 (10:34 -0700)]
Merge branch 'django1.7' of mus.cacr.caltech.edu:htsworkflow into django1.7
Diane Trout [Wed, 29 Oct 2014 04:40:55 +0000 (21:40 -0700)]
actually don't track the sqlite3 database
Diane Trout [Mon, 27 Oct 2014 17:58:50 +0000 (10:58 -0700)]
comment out benderjab dependency, as were not using it now
Diane Trout [Mon, 27 Oct 2014 17:57:12 +0000 (10:57 -0700)]
Change the settings default to work with the two scoops split settings.
Also configure logging to work with django 1.7
Diane Trout [Thu, 23 Oct 2014 22:48:03 +0000 (15:48 -0700)]
import os, so we can use os.path.join
Diane Trout [Wed, 24 Sep 2014 03:48:53 +0000 (20:48 -0700)]
relax requirements to make it easier to install on debian
Diane Trout [Fri, 12 Sep 2014 18:44:34 +0000 (11:44 -0700)]
make it easier to override variables in ENCODED class
Diane Trout [Mon, 28 Jul 2014 17:45:27 +0000 (10:45 -0700)]
add frozen package list
Diane Trout [Sat, 26 Jul 2014 18:50:59 +0000 (11:50 -0700)]
configure a mock keyring
Diane Trout [Fri, 25 Jul 2014 22:26:22 +0000 (15:26 -0700)]
make whitespace pep8 complient
Diane Trout [Fri, 25 Jul 2014 22:14:08 +0000 (15:14 -0700)]
Use two-scoop style multiple settings file.
This also adds a config_helper to help create an ini-file
that contains the randomly generated secret key.
Diane Trout [Thu, 24 Jul 2014 21:52:28 +0000 (14:52 -0700)]
DCC example code sets both content-type and accept for sending API access
Diane Trout [Thu, 24 Jul 2014 21:51:04 +0000 (14:51 -0700)]
pep8 whitespace cleanup.
For a few modules this was pretty significant as they
inconsistently used both 2 and 4 space indenting.
Diane Trout [Thu, 24 Jul 2014 21:03:07 +0000 (14:03 -0700)]
create exception using modern python syntax
Diane Trout [Thu, 24 Jul 2014 20:59:05 +0000 (13:59 -0700)]
remove a commented out import
Diane Trout [Thu, 24 Jul 2014 20:56:08 +0000 (13:56 -0700)]
Flatten project hierarchy, moving djano applications out of htsworkflow.frontend into project root.
Unsuprisingly this also required updates to large chunks of
code to change the import paths for things.
I was motivated by the idea of trying to make my django applications more
portable. I tried some hacks with the python path to make it so they
could live in htsworkflow.appname, but django 1.7 seemed to want the app
to have only one import path, and this was the easiest way I could see to
solve that.