old_contents: #
  # Copyright 2013 Quantopian, Inc.
  #
  # Licensed under the Apache License, Version 2.0 (the "License");
  # you may not use this file except in compliance with the License.
  # You may obtain a copy of the License at
  #
  #     http://www.apache.org/licenses/LICENSE-2.0
  #
  # Unless required by applicable law or agreed to in writing, software
  # distributed under the License is distributed on an "AS IS" BASIS,
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  # See the License for the specific language governing permissions and
  # limitations under the License.
  
  """
  Utility script for maintainer use to upload current version of the answer key
  spreadsheet to S3.
  """
  import hashlib
  
  import boto
  
  from . import answer_key
  
  BUCKET_NAME = 'zipline-test-data'
  
  
  def main():
      with open(answer_key.ANSWER_KEY_PATH, 'r') as f:
          md5 = hashlib.md5()
          while True:
              buf = f.read(1024)
              if not buf:
                  break
              md5.update(buf)
      local_hash = md5.hexdigest()
  
      s3_conn = boto.connect_s3()
  
      bucket = s3_conn.get_bucket(BUCKET_NAME)
      key = boto.s3.key.Key(bucket)
  
      key.key = "risk/{local_hash}/risk-answer-key.xlsx".format(
          local_hash=local_hash)
      key.set_contents_from_filename(answer_key.ANSWER_KEY_PATH)
      key.set_acl('public-read')
  
      download_link = "http://s3.amazonaws.com/{bucket_name}/{key}".format(
          bucket_name=BUCKET_NAME,
          key=key.key)
  
      print("Uploaded to key: {key}".format(key=key.key))
      print("Download link: {download_link}".format(download_link=download_link))
  
  if __name__ == "__main__":
      main()
  
new_contents: #
  # Copyright 2013 Quantopian, Inc.
  #
  # Licensed under the Apache License, Version 2.0 (the "License");
  # you may not use this file except in compliance with the License.
  # You may obtain a copy of the License at
  #
  #     http://www.apache.org/licenses/LICENSE-2.0
  #
  # Unless required by applicable law or agreed to in writing, software
  # distributed under the License is distributed on an "AS IS" BASIS,
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  # See the License for the specific language governing permissions and
  # limitations under the License.
  
  """
  Utility script for maintainer use to upload current version of the answer key
  spreadsheet to S3.
  """
  import hashlib
  
  import boto
  
  from . import answer_key
  
  BUCKET_NAME = 'zipline-test-data'
  
  
  def main():
      with open(answer_key.ANSWER_KEY_PATH, 'r') as f:
          md5 = hashlib.md5()
          while True:
              buf = f.read(1024)
              if not buf:
                  break
              md5.update(buf)
      local_hash = md5.hexdigest()
  
      s3_conn = boto.connect_s3()
  
      bucket = s3_conn.get_bucket(BUCKET_NAME)
      key = boto.s3.key.Key(bucket)
  
      key.key = "risk/{local_hash}/risk-answer-key.xlsx".format(
          local_hash=local_hash)
      key.set_contents_from_filename(answer_key.ANSWER_KEY_PATH)
      key.set_acl('public-read')
  
      download_link = "http://s3.amazonaws.com/{bucket_name}/{key}".format(
          bucket_name=BUCKET_NAME,
          key=key.key)
  
      print("Uploaded to key: {key}".format(key=key.key))
      print("Download link: {download_link}".format(download_link=download_link))
  
      # Now update checksum file with the recently added answer key.
      # checksum file update will be then need to be commited via git.
      with open(answer_key.ANSWER_KEY_CHECKSUMS_PATH, 'a') as checksum_file:
          checksum_file.write(local_hash)
          checksum_file.write("\n")
  
  if __name__ == "__main__":
      main()
  
subject: Update answer key checksums on upload.