blender-asset-tracer.git
4 months agoImproved path handling master
Sybren A. Stüvel [Tue, 17 Mar 2020 16:15:19 +0000 (17:15 +0100)]
Improved path handling

This commit fixes a bunch of issues at the same time, as they are all
related to path handling:

- `pathlib.Path.resolve()` or `.absolute()` are replaced by
  `bpathlib.make_absolute()`. The latter does NOT follow symlinks and does
  NOT network mounts from a drive letter to UNC notation. This also has
  advantages on non-Windows sytems, as it allows BAT-packing a directory
  structure with symlinked files (such as a Shaman checkout).
- Better handling of drive letters, and of paths that cross drive
  boundaries.
- Better testing of Windows-specific cases when running the tests on
  Windows, and of POSIX-specific cases on other platforms.

Thanks to @wisaac for starting this patch in D6676.

Thanks to @jbakker for pointing out the drive letter issue. This fixes
T70655.

4 months agoBumped version to 1.3-dev0
Sybren A. Stüvel [Tue, 17 Mar 2020 16:00:11 +0000 (17:00 +0100)]
Bumped version to 1.3-dev0

4 months agoTest options: don't show logging output
Sybren A. Stüvel [Tue, 17 Mar 2020 14:27:51 +0000 (15:27 +0100)]
Test options: don't show logging output

The logging is sent to stdout already (which is captured and printed by
PyTest), so having PyTest also capture and print logging just doubles
the output.

No functional changes.

4 months agoMyPy test fix
Sybren A. Stüvel [Tue, 17 Mar 2020 11:25:09 +0000 (12:25 +0100)]
MyPy test fix

Newer versions of MyPy aren't silent any more when they complete succesfully,
so test for 'Success' in the message before failing the test.

7 months agoAdded Arcanist config file
Sybren A. Stüvel [Mon, 6 Jan 2020 10:24:35 +0000 (11:24 +0100)]
Added Arcanist config file

10 months agoBumped version to 1.2.2 v1.2.2
Sybren A. Stüvel [Thu, 10 Oct 2019 08:35:41 +0000 (10:35 +0200)]
Bumped version to 1.2.2

10 months agoMarked version 1.2 as released
Sybren A. Stüvel [Thu, 10 Oct 2019 08:34:23 +0000 (10:34 +0200)]
Marked version 1.2 as released

10 months agoBumped version to 1.2.1
Sybren A. Stüvel [Wed, 9 Oct 2019 06:58:55 +0000 (08:58 +0200)]
Bumped version to 1.2.1

Version 1.2 already existed on pypi by accident.

10 months agoBumped version to 1.2
Sybren A. Stüvel [Wed, 9 Oct 2019 06:56:49 +0000 (08:56 +0200)]
Bumped version to 1.2

10 months agoUpdated dependencies in poetry.lock
Sybren A. Stüvel [Fri, 27 Sep 2019 10:21:19 +0000 (12:21 +0200)]
Updated dependencies in poetry.lock

10 months agoRemove unnecessary dictionary lookup
Sybren A. Stüvel [Fri, 27 Sep 2019 10:20:15 +0000 (12:20 +0200)]
Remove unnecessary dictionary lookup

This may also fix a Windows compatibility issue related to path
normalisation. Untested as it's hard to reproduce, but at least it
shouldn't hurt either.

10 months agoMention T-number in changelog
Sybren A. Stüvel [Fri, 27 Sep 2019 10:19:31 +0000 (12:19 +0200)]
Mention T-number in changelog

10 months agoFix external smoke caches not being packed
Sybren A. Stüvel [Fri, 27 Sep 2019 10:19:22 +0000 (12:19 +0200)]
Fix external smoke caches not being packed

10 months agoFix T69976: BAT does not work with FluidSimModifier in Blender 2.81
Sybren A. Stüvel [Thu, 26 Sep 2019 10:25:11 +0000 (12:25 +0200)]
Fix T69976: BAT does not work with FluidSimModifier in Blender 2.81

The `point_cache` pointer was removed from Blender in
{rBd663ec48c06a083de74e90dd9c605e98b28baa37}, and was unused before that
commit.

10 months agoAllow setting Shaman JWT token in `SHAMAN_JWT_TOKEN` environment variable
Sybren A. Stüvel [Tue, 23 Jul 2019 12:01:22 +0000 (14:01 +0200)]
Allow setting Shaman JWT token in `SHAMAN_JWT_TOKEN` environment variable

I also removed the unused `shaman/auth.py` file.

12 months agoAdded note about RNA and DNA in README.md
Sybren A. Stüvel [Mon, 12 Aug 2019 09:47:06 +0000 (11:47 +0200)]
Added note about RNA and DNA in README.md

12 months agoExtended the code example in README.md a bit
Sybren A. Stüvel [Mon, 12 Aug 2019 09:38:41 +0000 (11:38 +0200)]
Extended the code example in README.md a bit

12 months agoAdded a code example to the README.md
Sybren A. Stüvel [Mon, 12 Aug 2019 08:55:41 +0000 (10:55 +0200)]
Added a code example to the README.md

13 months agoFix T65904: External files with same path on different drives are packed once
Sybren A. Stüvel [Wed, 26 Jun 2019 12:35:43 +0000 (14:35 +0200)]
Fix T65904: External files with same path on different drives are packed once

External files with the same path on different drives are packed as a
single file. In this commit the drive letter is taken into account when
determining the path inside `_outside_project`, so that they are distinct.

14 months agoBumped version to 1.2-dev0
Sybren A. Stüvel [Wed, 12 Jun 2019 09:49:27 +0000 (11:49 +0200)]
Bumped version to 1.2-dev0

14 months agoUpdated changelog
Sybren A. Stüvel [Wed, 12 Jun 2019 09:49:18 +0000 (11:49 +0200)]
Updated changelog

14 months agoMoved from Pipenv to Poetry
Sybren A. Stüvel [Fri, 7 Jun 2019 10:22:44 +0000 (12:22 +0200)]
Moved from Pipenv to Poetry

All the Blender Institute Python webprojects are moving to Poetry; it works
better than Pipenv in various regards.

14 months agoPrevent error when modifying actions dict
Sybren A. Stüvel [Fri, 7 Jun 2019 10:24:16 +0000 (12:24 +0200)]
Prevent error when modifying actions dict

14 months agoFix exception when having project on a mapped network drive in Windows
Sybren A. Stüvel [Fri, 7 Jun 2019 10:23:25 +0000 (12:23 +0200)]
Fix exception when having project on a mapped network drive in Windows

14 months agoUpdated changelog
Sybren A. Stüvel [Wed, 5 Jun 2019 12:14:00 +0000 (14:14 +0200)]
Updated changelog

15 months agoBumped version to 1.1.1 v1.1.1
Sybren A. Stüvel [Thu, 18 Apr 2019 10:04:51 +0000 (12:04 +0200)]
Bumped version to 1.1.1

15 months agoImport urllib3 from requests.packages.urllib3
Sybren A. Stüvel [Thu, 18 Apr 2019 10:04:03 +0000 (12:04 +0200)]
Import urllib3 from requests.packages.urllib3

This is for compatibility with Blender 2.79.

15 months agoDeclare requests as dependency
Sybren A. Stüvel [Thu, 18 Apr 2019 09:47:28 +0000 (11:47 +0200)]
Declare requests as dependency

It's used by the Shaman interface only, so other BAT functions could be
used without it as well.

15 months agoAllow testing with Tox
Sybren A. Stüvel [Thu, 18 Apr 2019 09:43:18 +0000 (11:43 +0200)]
Allow testing with Tox

16 months agoBumped version to 1.1 v1.1
Sybren A. Stüvel [Mon, 25 Mar 2019 16:46:53 +0000 (17:46 +0100)]
Bumped version to 1.1

16 months agoMarked version 1.1 as released
Sybren A. Stüvel [Mon, 25 Mar 2019 16:46:38 +0000 (17:46 +0100)]
Marked version 1.1 as released

16 months agoUpdated URL to Shaman
Sybren A. Stüvel [Mon, 25 Mar 2019 16:46:28 +0000 (17:46 +0100)]
Updated URL to Shaman

The Shaman server as standalone component is no more, it's been integrated
into Flamenco Manager.

16 months agoBumped version to 1.1.dev2
Sybren A. Stüvel [Wed, 20 Mar 2019 12:58:23 +0000 (13:58 +0100)]
Bumped version to 1.1.dev2

16 months agoSupport Alembic files from linked library
Sybren A. Stüvel [Wed, 20 Mar 2019 12:56:03 +0000 (13:56 +0100)]
Support Alembic files from linked library

We already supported Alembic files in the top-level blend file, but now we
also support finding Alembic files in linked-in libraries.

16 months agoSupport the Mesh Sequence Cache modifier (a.k.a. Alembic files)
Sybren A. Stüvel [Wed, 20 Mar 2019 10:14:23 +0000 (11:14 +0100)]
Support the Mesh Sequence Cache modifier (a.k.a. Alembic files)

16 months agoFormatting
Sybren A. Stüvel [Wed, 20 Mar 2019 10:12:47 +0000 (11:12 +0100)]
Formatting

17 months agoUse exponential backoff when retrying HTTP connections
Sybren A. Stüvel [Wed, 6 Mar 2019 15:21:30 +0000 (16:21 +0100)]
Use exponential backoff when retrying HTTP connections

17 months agoShaman: added some timeouts to HTTP requests
Sybren A. Stüvel [Wed, 6 Mar 2019 15:00:46 +0000 (16:00 +0100)]
Shaman: added some timeouts to HTTP requests

17 months agoBumped version to 1.1-dev1
Sybren A. Stüvel [Wed, 6 Mar 2019 12:40:32 +0000 (13:40 +0100)]
Bumped version to 1.1-dev1

17 months agoFix ValueError when not requesting a checkout
Sybren A. Stüvel [Wed, 6 Mar 2019 11:10:55 +0000 (12:10 +0100)]
Fix ValueError when not requesting a checkout

17 months agoPython 3.5 fixes
Sybren A. Stüvel [Fri, 1 Mar 2019 14:12:24 +0000 (15:12 +0100)]
Python 3.5 fixes

`typing.Deque` was introduced in Python 3.6, so we can only use it when
we no longer support Blender 2.79.

17 months agoUpdated changelog
Sybren A. Stüvel [Fri, 1 Mar 2019 13:32:50 +0000 (14:32 +0100)]
Updated changelog

17 months agoShaman: Include original filename when uploading file
Sybren A. Stüvel [Fri, 1 Mar 2019 12:54:16 +0000 (13:54 +0100)]
Shaman: Include original filename when uploading file

17 months agoShaman changed response `does-not-exist` → `file-unknown`
Sybren A. Stüvel [Thu, 28 Feb 2019 11:34:23 +0000 (12:34 +0100)]
Shaman changed response `does-not-exist` → `file-unknown`

Instead of 'does-not-exist' we'll now receive 'file-unknown' (see Shaman
commit 44efa6b39bddc703a14aa68316b092866813c38a)

17 months agoShaman: Moved URL parsing into a separate function
Sybren A. Stüvel [Thu, 28 Feb 2019 11:32:07 +0000 (12:32 +0100)]
Shaman: Moved URL parsing into a separate function

This allows other code to just call that function, rather than copying
the behaviour.

17 months agoWhen aborting, make sure the reason is available
Sybren A. Stüvel [Thu, 28 Feb 2019 11:28:57 +0000 (12:28 +0100)]
When aborting, make sure the reason is available

This allows a GUI to display the reason of abortion.

17 months agoShaman: Make checkout location available to the Packer
Sybren A. Stüvel [Wed, 27 Feb 2019 17:26:20 +0000 (18:26 +0100)]
Shaman: Make checkout location available to the Packer

17 months agoRecord bytes & files uploaded on Transferer
Sybren A. Stüvel [Wed, 27 Feb 2019 15:22:28 +0000 (16:22 +0100)]
Record bytes & files uploaded on Transferer

17 months agoShaman server support
Sybren A. Stüvel [Tue, 26 Feb 2019 14:26:40 +0000 (15:26 +0100)]
Shaman server support

The Shaman server is a file storage system that identifies files by
SHA256sum and file length. BAT can send packs there by only uploading
changed/new files. The BAT pack is reproduced at the Shaman server's
checkout directory by creating symlinks to the files in its file
storage.

Retrying sending files:

When we can defer uploading a file (that is, when we have other files to
upload as well, and we could send the current file at a later moment) we
send an `X-Shaman-Can-Defer-Upload: true` header in the file upload
request. In that case, when someone else is already uploading that file,
a `208 Already Reported` response is sent and the connection is closed.
Python's Requests library unfortunately won't give us that response if
we're still streaming the request, and raise a ConnectionError exception
instead. This exception can mean two things:

- If the `X-Shaman-Can-Defer-Upload: true` header was sent: someone else
  is currently uploading that file, so defer it.
- If that header was not sent: that file is already completely uploaded
  and does not need to be uploaded again.

Instead of retrying each failed file, after a few failures we now just
resend the definition file to get a new list of files to upload, then
send those. This should considerably reduce the number of HTTP calls
when multiple clients are uploading the same set of files.

17 months agoBumped version to 1.1-dev0
Sybren A. Stüvel [Fri, 1 Mar 2019 13:07:12 +0000 (14:07 +0100)]
Bumped version to 1.1-dev0

17 months agoBumped version to 1.0 v1.0
Sybren A. Stüvel [Fri, 1 Mar 2019 13:03:26 +0000 (14:03 +0100)]
Bumped version to 1.0

This is the same version as 0.99, just released as 1.0 to note the
maturity of the code (it's been used successfully for months at the Blender
Animation Studio).

17 months agoBumped version to 0.99 v0.99
Sybren A. Stüvel [Tue, 26 Feb 2019 15:45:43 +0000 (16:45 +0100)]
Bumped version to 0.99

17 months agoInclude error message with error status
Sybren A. Stüvel [Tue, 26 Feb 2019 15:20:05 +0000 (16:20 +0100)]
Include error message with error status

17 months agoConvert target path from Path to str & PurePath
Sybren A. Stüvel [Tue, 26 Feb 2019 14:22:14 +0000 (15:22 +0100)]
Convert target path from Path to str & PurePath

The target path is just read as string from the CLI now, to allow more
complex targets (such as URLs) that don't directly map to a path.

The Packer subclass now handles the conversion from that string to a
`pathlib.PurePath`, and specific subclasses & transfer classes can convert
those to a `pathlib.Path` to perform actual filesystem operations when
necessary.

17 months agoUpdate dependencies
Sybren A. Stüvel [Tue, 26 Feb 2019 14:17:59 +0000 (15:17 +0100)]
Update dependencies

17 months agoUse `'bat-'` prefix when creating temporary directories
Sybren A. Stüvel [Tue, 26 Feb 2019 14:33:42 +0000 (15:33 +0100)]
Use `'bat-'` prefix when creating temporary directories

17 months agoRemoved unused imports
Sybren A. Stüvel [Tue, 26 Feb 2019 13:49:54 +0000 (14:49 +0100)]
Removed unused imports

17 months agoClarified comment
Sybren A. Stüvel [Tue, 12 Feb 2019 11:48:02 +0000 (12:48 +0100)]
Clarified comment

17 months agoBumped version to 0.9
Sybren A. Stüvel [Tue, 12 Feb 2019 11:31:51 +0000 (12:31 +0100)]
Bumped version to 0.9

17 months agoFixed crash where collection children are ID blocks instead of GR blocks
Sybren A. Stüvel [Tue, 12 Feb 2019 11:31:05 +0000 (12:31 +0100)]
Fixed crash where collection children are ID blocks instead of GR blocks

Not sure when/how that happens, but it happened on a lighting file of the
Spring project, when linking in a nested collection of which parts where
also linked in from other blend files.

18 months agoAdded some more unit tests for BlendPath
Sybren A. Stüvel [Mon, 4 Feb 2019 14:42:40 +0000 (15:42 +0100)]
Added some more unit tests for BlendPath

18 months agoRemoved unused FileCopierPool class
Sybren A. Stüvel [Mon, 4 Feb 2019 14:34:29 +0000 (15:34 +0100)]
Removed unused FileCopierPool class

18 months agoAdded --sha256 and --timing options to `bat list`
Sybren A. Stüvel [Mon, 4 Feb 2019 14:16:35 +0000 (15:16 +0100)]
Added --sha256 and --timing options to `bat list`

These are only temporary features for aiding in development.

18 months agoRemoved some extraneous commas
Sybren A. Stüvel [Mon, 4 Feb 2019 14:15:43 +0000 (15:15 +0100)]
Removed some extraneous commas

18 months agoUse a priority queue instead of repeatedly sorting a deque
Sybren A. Stüvel [Fri, 1 Feb 2019 17:03:25 +0000 (18:03 +0100)]
Use a priority queue instead of repeatedly sorting a deque

19 months agoBumped version to 0.8 v0.8
Sybren A. Stüvel [Wed, 2 Jan 2019 15:06:38 +0000 (16:06 +0100)]
Bumped version to 0.8

19 months agoTest packing a blend file with Windows relative paths
Sybren A. Stüvel [Wed, 2 Jan 2019 14:41:56 +0000 (15:41 +0100)]
Test packing a blend file with Windows relative paths

19 months agoAvoid repeating/constructing the same path
Sybren A. Stüvel [Wed, 2 Jan 2019 14:39:09 +0000 (15:39 +0100)]
Avoid repeating/constructing the same path

19 months agoConfigure test logging at import time (rather than at setup time)
Sybren A. Stüvel [Wed, 2 Jan 2019 14:38:34 +0000 (15:38 +0100)]
Configure test logging at import time (rather than at setup time)

19 months agoWorkaround for Windows failing on glob patterns in path.resolve()
Sybren A. Stüvel [Wed, 2 Jan 2019 14:04:54 +0000 (15:04 +0100)]
Workaround for Windows failing on glob patterns in path.resolve()

Windows fails with an OSError when `somepath.resolve()` is called and
`somepath` contains a glob pattern. As a workaround, we now `resolve()`
the parent directory, and put the filename at its end. This only works
when the glob pattern is in the filename, which is the case for BAT-
generated globs.

19 months agoExplicitly write pack-info.txt as UTF-8
Sybren A. Stüvel [Wed, 2 Jan 2019 14:03:26 +0000 (15:03 +0100)]
Explicitly write pack-info.txt as UTF-8

19 months agoReplace → with ->
Sybren A. Stüvel [Wed, 2 Jan 2019 13:32:10 +0000 (14:32 +0100)]
Replace → with ->

Apparently Windows still isn't using UTF-8 by default, and fails when
handling these log entries.

19 months agoMissing test teardowns
Sybren A. Stüvel [Wed, 2 Jan 2019 11:47:43 +0000 (12:47 +0100)]
Missing test teardowns

This kept a file pointer open while trying to delete the file.

19 months agoBlendPath: don't use os.path.join() for slash notations
Sybren A. Stüvel [Wed, 2 Jan 2019 11:47:16 +0000 (12:47 +0100)]
BlendPath: don't use os.path.join() for slash notations

The BlendPath should just use forward slashes, and not be depending on the
current platform.

19 months agoBlendPath.__repr__ implemented
Sybren A. Stüvel [Wed, 2 Jan 2019 11:46:33 +0000 (12:46 +0100)]
BlendPath.__repr__ implemented

19 months agoBlendPath.as_path() now refuses to convert blendfile-relative paths
Sybren A. Stüvel [Thu, 20 Dec 2018 14:35:06 +0000 (15:35 +0100)]
BlendPath.as_path() now refuses to convert blendfile-relative paths

When a path starts with b'//' it will not be converted to a PurePath, as
the handling of such filenames is platform dependent (Windows handles those
weirdly, like appending a slash to any path).

19 months agoAttempt at making BAT work on Windows
Sybren A. Stüvel [Thu, 20 Dec 2018 14:15:49 +0000 (15:15 +0100)]
Attempt at making BAT work on Windows

All BlendPath instances will use forward slashes, and there should be
more use of PurePosixPath instead of Path.

19 months agoUpgraded dependencies
Sybren A. Stüvel [Thu, 20 Dec 2018 13:23:12 +0000 (14:23 +0100)]
Upgraded dependencies

19 months agoFixed MyPy issue
Sybren A. Stüvel [Thu, 20 Dec 2018 13:23:06 +0000 (14:23 +0100)]
Fixed MyPy issue

19 months agoFixed leaking file descriptors in unit tests
Sybren A. Stüvel [Thu, 20 Dec 2018 13:04:23 +0000 (14:04 +0100)]
Fixed leaking file descriptors in unit tests

These weren't any issue in Linux, but Windows doesn't like it when you
try to delete a still-opened file.

20 months agoBumped version to 0.7 v0.7
Sybren A. Stüvel [Thu, 6 Dec 2018 09:02:40 +0000 (10:02 +0100)]
Bumped version to 0.7

20 months agoAdded `--relative-only` option to `bat pack` command
Sybren A. Stüvel [Thu, 6 Dec 2018 09:02:14 +0000 (10:02 +0100)]
Added `--relative-only` option to `bat pack` command

This makes BAT skip assets that are referred to with an absolute path.
It is assumed that the receiver of the BAT pack can access those assets
at the same path.

20 months agoBumped version to 0.6.1 v0.6.1
Sybren A. Stüvel [Fri, 30 Nov 2018 13:03:31 +0000 (14:03 +0100)]
Bumped version to 0.6.1

20 months agoblocks: Allow choosing number of DNA types shown via --limit CLI arg
Sybren A. Stüvel [Fri, 30 Nov 2018 13:03:20 +0000 (14:03 +0100)]
blocks: Allow choosing number of DNA types shown via --limit CLI arg

20 months agoBumped version to 0.6 v0.6
Sybren A. Stüvel [Fri, 30 Nov 2018 12:59:33 +0000 (13:59 +0100)]
Bumped version to 0.6

20 months agoAdded 'bat blocks' command that shows the DNA types that use the most data
Sybren A. Stüvel [Fri, 30 Nov 2018 12:58:19 +0000 (13:58 +0100)]
Added 'bat blocks' command that shows the DNA types that use the most data

It's work in progress and maybe not useful for anyone but us.

20 months agoAdded Twine to dev requirements v0.5
Sybren A. Stüvel [Tue, 27 Nov 2018 15:06:51 +0000 (16:06 +0100)]
Added Twine to dev requirements

Twine is the recommended way to upload files to PyPi.

20 months agoTypo
Sybren A. Stüvel [Tue, 27 Nov 2018 15:00:50 +0000 (16:00 +0100)]
Typo

20 months agoAdded instructions on how to upload packages to pypi
Sybren A. Stüvel [Tue, 27 Nov 2018 14:59:58 +0000 (15:59 +0100)]
Added instructions on how to upload packages to pypi

20 months agoRemoved logging options from setup.cfg again
Sybren A. Stüvel [Tue, 27 Nov 2018 14:59:43 +0000 (15:59 +0100)]
Removed logging options from setup.cfg again

The % symbols confuse setup.py when running 'setup.py sdist bdist_wheel',
and I couldn't quickly figure out how to escape those properly.

20 months agoBumped version to 0.5
Sybren A. Stüvel [Tue, 27 Nov 2018 14:51:19 +0000 (15:51 +0100)]
Bumped version to 0.5

20 months agoMulti-threaded compressed file transfers
Sybren A. Stüvel [Tue, 27 Nov 2018 14:50:20 +0000 (15:50 +0100)]
Multi-threaded compressed file transfers

For regular file transfers (so to a directory, not to a ZIP file or S3
storage), use multi-threaded transfer when compressing. Compressing is
CPU-bound, so using multiple threads speeds things up considerably
(packing a Spring lighting file went from 6min30 single-threaded to
2min13 multi-threaded on my machine).

20 months ago`bat pack --help` improvements
Sybren A. Stüvel [Tue, 27 Nov 2018 13:37:15 +0000 (14:37 +0100)]
`bat pack --help` improvements

20 months agoAdded --compress option for 'bat pack' command
Sybren A. Stüvel [Tue, 27 Nov 2018 13:20:08 +0000 (14:20 +0100)]
Added --compress option for 'bat pack' command

This compresses all packed Blend files. Other files, as well as already-
compressed Blend files, are left as-is.

20 months agoAdd some log level configuration to py.test config
Sybren A. Stüvel [Tue, 27 Nov 2018 13:21:13 +0000 (14:21 +0100)]
Add some log level configuration to py.test config

Not sure if we want a global DEBUG setting; if it becomes annoying, change it.

21 months agoSupport for cloth ptcaches stored on disk
Jeroen Bakker [Thu, 8 Nov 2018 09:25:02 +0000 (10:25 +0100)]
Support for cloth ptcaches stored on disk

Currently pointcaches on disk for cloth sims were not traced. This patch allows the tracing of pointcaches for cloth sims.

Reviewers: sybren, fsiddi

Reviewed By: sybren

Differential Revision: https://developer.blender.org/D3910

21 months agoFix MyPy errors when running without boto3 installed
Sybren A. Stüvel [Wed, 7 Nov 2018 12:03:07 +0000 (13:03 +0100)]
Fix MyPy errors when running without boto3 installed

2 years agoInclude version in --help output
Sybren A. Stüvel [Wed, 11 Jul 2018 10:44:29 +0000 (12:44 +0200)]
Include version in --help output

2 years agoBumped version to 0.5-dev
Sybren A. Stüvel [Tue, 10 Jul 2018 14:03:30 +0000 (16:03 +0200)]
Bumped version to 0.5-dev

2 years agoBumped version to 0.4 v0.4
Sybren A. Stüvel [Tue, 10 Jul 2018 14:03:00 +0000 (16:03 +0200)]
Bumped version to 0.4