summaryrefslogtreecommitdiff
path: root/megapixels/app/models/data_store.py
blob: 244aba600f7d997f68c53c4a0552ba15b304cb83 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import os
from os.path import join
import logging

from app.settings import app_cfg as cfg
from app.settings import types


# -------------------------------------------------------------------------
# Metadata and media files
# -------------------------------------------------------------------------

class DataStore:
  # local data store
  def __init__(self, opt_data_store, opt_dataset):
    self.data_store = join(f'/data_store_{opt_data_store.name.lower()}')
    self.dir_dataset = join(self.data_store, 'datasets', cfg.DIR_PEOPLE, opt_dataset.name.lower())
    self.dir_media = join(self.dir_dataset, 'media')
    self.dir_metadata = join(self.dir_dataset, 'metadata')

  def metadata(self, enum_type):
    return join(self.dir_metadata, f'{enum_type.name.lower()}.csv')

  def metadata(self, enum_type):
    return join(self.dir_metadata)

  def media_images_original(self):
    return join(self.dir_media, 'original')

  def face(self, subdir, fn, ext):
    return join(self.dir_media, 'original', subdir, f'{fn}.{ext}')

  def face_crop(self, subdir, fn, ext):
    return join(self.dir_media, 'cropped', subdir, f'{fn}.{ext}')

  def face_uuid(self, uuid, ext):
    return join(self.dir_media, 'uuid',f'{uuid}.{ext}')

  def face_crop_uuid(self, uuid, ext):
    return join(self.dir_media, 'uuid', f'{uuid}.{ext}')

  def uuid_dir(self):
    return join(self.dir_media, 'uuid')


class DataStoreS3:
  # S3 server
  def __init__(self, opt_dataset):
    self._dir_media = join(cfg.S3_HTTP_MEDIA_URL, opt_dataset.name.lower())
    self._dir_metadata = join(cfg.S3_HTTP_METADATA_URL, opt_dataset.name.lower())

  def metadata(self, opt_metadata_type, ext='csv'):
    return join(self._dir_metadata, f'{opt_metadata_type.name.lower()}.{ext}')

  def face(self, opt_uuid, ext='jpg'):
    #return join(self._dir_media, 'original', f'{opt_uuid}.{ext}')
    return join(self._dir_media, f'{opt_uuid}.{ext}')

  def face_crop(self, opt_uuid, ext='jpg'):
    # not currently using?
    return join(self._dir_media, 'cropped', f'{opt_uuid}.{ext}')



# -------------------------------------------------------------------------
# Models
# -------------------------------------------------------------------------