summaryrefslogtreecommitdiffstats
path: root/combox/file.py
diff options
context:
space:
mode:
authorSiddharth Ravikumar <sravik@bgsu.edu>2015-01-12 16:53:36 -0500
committerSiddharth Ravikumar <sravik@bgsu.edu>2015-01-12 16:53:36 -0500
commit154a3d5fcbf5962859fd0d345645060b27223690 (patch)
treeaeb6a8bf3079dfed3b7b8fa7029e906ae75b0f17 /combox/file.py
parent286421c30599dee1f1aaee500f3bfed0bada6c5f (diff)
consolidated everything into combox/combox.py.
tests were removed. will write tests using `nose` later. renamed: combox/file.py -> combox/combox.py deleted: combox/config.py deleted: combox/crypto.py renamed: tests/test_config.py -> tests/combox_tests.py deleted: tests/files/the-red-star.jpg deleted: tests/test_crypto.py deleted: tests/test_file.py
Diffstat (limited to 'combox/file.py')
-rw-r--r--combox/file.py127
1 files changed, 0 insertions, 127 deletions
diff --git a/combox/file.py b/combox/file.py
deleted file mode 100644
index ec0372e..0000000
--- a/combox/file.py
+++ /dev/null
@@ -1,127 +0,0 @@
-# Copyright (C) 2014 Combox author(s). See AUTHORS.
-#
-# This file is part of Combox.
-#
-# Combox is free software: you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# Combox is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with Combox (see COPYING). If not, see
-# <http://www.gnu.org/licenses/>.
-
-from os import path
-from sys import exit
-from glob import glob
-
-
-def split_data(data, n):
- """Split data into `n' parts and return them as an array.
-
- data: Stream of bytes or string
- n: Number of parts the file has to be split.
- """
-
- d_parts = []
- # File size in bytes.
- data_size = len(data)
- # No. of bytes for each data part.
- part_size = data_size / n
- # Take note of remaining bytes; this is non-zero when data_size is
- # not divisible by `n'.
- rem_bytes = data_size % n
-
- start = 0
- end = part_size
- while end <= data_size:
- d_parts.append(data[start:end])
- start = end
- end = end + part_size
-
- # read the remaining bytes into the last data part.
- end += start + rem_bytes
- d_parts[n-1] += data[start:end]
-
- return d_parts
-
-
-def glue_data(d_parts):
- """Glue different parts of the data to one.
-
- d_parts: Array containing different parts of the data. Each part
- is a sequence of bytes.
- """
-
- data = ''
- for part in d_parts:
- data += part
-
- return data
-
-
-def read_file(filename):
- """Read file and return it as a string.
-
- filename: Absolute pathname of the file.
- """
- file_ = None
- try:
- file_ = open(filename, 'rb')
- except IOError:
- print "ERROR: opening %s" % (filename)
- exit(1)
-
- return file_.read()
-
-
-def write_file(filename, filecontent):
- """Write `filecontent' to `filename'.
-
- filename: Absolute pathname of the file.
- filecontent: String/bytstream to write to filename.
- """
- file_ = None
- try:
- file_ = open(filename, 'wb')
- file_.write(filecontent)
- except IOError:
- print "ERROR: creating and writing content to %s" % (filename)
- exit(1)
-
-def write_shards(shards, directory, shard_basename):
- """Write shards to respective files respective files.
-
- shard: list of strings (ciphers or data).
- directory: absolute path of directory to which it shards must be written to.
- shard_basename: base name of the shard.
- """
-
- # partial filename of the shard
- p_filename = path.join(directory, shard_basename)
- shard_no = 0
- for shard in shards:
- shard_name = "%s.shard%s" % (p_filename, shard_no)
- write_file(shard_name, shard)
- shard_no += 1
-
-def read_shards(directory, shard_basename):
- """Read the shards from directory and return it as a list.
-
- directory: absolute path of directory from which to read the shards.
- shard_basename: base name of the shard.
- """
-
- shards = []
- # partial filename of the shard
- p_filename = "%s.shard*" % path.join(directory, shard_basename)
- for shard_file in sorted(glob(p_filename)):
- shard_content = read_file(shard_file)
- shards.append(shard_content)
-
- return shards