Skip to article frontmatterSkip to article content

Filepaths

from IPython import display
from ipywidgets import Image

import os
import datajoint as dj
schema = dj.schema('dimitri_filepath')
Connecting dimitri@localhost:3306
schema.drop()  # drop schema to start demo from scratch
Proceed to delete entire schema `dimitri_filepath`? [yes, No]: yes
schema = dj.schema('dimitri_filepath')
## Storage configuration

# set up stores
dj.config['stores'] = {
    'remote': dict(   # store in minio
        stage=os.path.abspath('./stage'),
        protocol='s3',
        endpoint='localhost:9000',
        access_key='datajoint',
        secret_key='datajoint',
        bucket='datajoint-demo',        
        location='code-clinic'),   
    }

Download some images off the web into ./stage

# Step 1: Find a bunch of images on the web
logos = dict(
    ucsd='https://upload.wikimedia.org/wikipedia/commons/f/f6/UCSD_logo.png',
    datajoint='https://datajoint.io/static/images/DJiotitle.png',
    utah='https://umc.utah.edu/wp-content/uploads/sites/15/2015/01/Ulogo_400p.png',
    bcm='https://upload.wikimedia.org/wikipedia/commons/5/5d/Baylor_College_of_Medicine_Logo.png',
    pydata='https://pydata.org/wp-content/uploads/2018/10/pydata-logo.png',
    python='https://www.python.org/static/community_logos/python-logo-master-v3-TM.png',
    pni='https://vathes.com/2018/05/24/Princeton-Neuroscience-Institute-Partners-with-Vathes-to-Support-the-Adoption-of-DataJoint/PNI%20logo.png')
Image.from_url(logos['python'])
Loading...
@schema
class Organization(dj.Lookup):
    definition = """
    organization : varchar(30)
    --- 
    logo_url : varchar(255)
    """
    contents = logos.items()
Organization()
Loading...
import requests 

@schema
class Logo(dj.Imported):
    definition = """
    -> Organization
    ---
    logo_image : filepath@remote
    """
    
    path = os.path.join(dj.config['stores']['remote']['stage'], 'organizations', 'logos')
    
    def make(self, key):
        # create the subfolder and download the logo into local_file 
        os.makedirs(self.path, exist_ok=True)
        url = (Organization & key).fetch1('logo_url')
        local_file = os.path.join(self.path, key['organization'] + os.path.splitext(url)[1])
        print(local_file)
        with open(local_file, 'wb') as f:
            f.write(requests.get(url).content)
        # sync up
        self.insert1(dict(key, logo_image=local_file))        
Logo.populate()
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/organizations/logos/bcm.png
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/organizations/logos/datajoint.png
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/organizations/logos/pni.png
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/organizations/logos/pydata.png
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/organizations/logos/python.png
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/organizations/logos/ucsd.png
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/organizations/logos/utah.png
Logo()
Loading...
Logo.fetch(as_dict=True)
[{'organization': 'pydata', 'logo_image': PosixPath('/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/organizations/logos/pydata.png')}, {'organization': 'utah', 'logo_image': PosixPath('/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/organizations/logos/utah.png')}, {'organization': 'datajoint', 'logo_image': PosixPath('/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/organizations/logos/datajoint.png')}, {'organization': 'ucsd', 'logo_image': PosixPath('/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/organizations/logos/ucsd.png')}, {'organization': 'pni', 'logo_image': PosixPath('/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/organizations/logos/pni.png')}, {'organization': 'python', 'logo_image': PosixPath('/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/organizations/logos/python.png')}, {'organization': 'bcm', 'logo_image': PosixPath('/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/organizations/logos/bcm.png')}]
# delete the local repository completely
import shutil
shutil.rmtree(dj.config['stores']['remote']['stage'])
paths = Logo().fetch('logo_image')
paths
array([PosixPath('/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/organizations/logos/pydata.png'), PosixPath('/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/organizations/logos/utah.png'), PosixPath('/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/organizations/logos/datajoint.png'), PosixPath('/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/organizations/logos/ucsd.png'), PosixPath('/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/organizations/logos/pni.png'), PosixPath('/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/organizations/logos/python.png'), PosixPath('/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/organizations/logos/bcm.png')], dtype=object)
Image.from_file(paths[4])
Loading...
(Logo & 'organization in ("datajoint", "bcm")').delete()
About to delete:
`dimitri_filepath`.`_logo`: 2 items
Proceed? [yes, No]: yes
Committed.
ext = schema.external['remote']
ext
Loading...
ext.unused()
Loading...
ext.unused().fetch_external_paths()
[(UUID('6e7ba0be-2171-a2ab-163e-ff12b0943e8e'), PurePosixPath('code-clinic/organizations/logos/datajoint.png')), (UUID('f97ea212-5794-926a-d852-deffc0f10bba'), PurePosixPath('code-clinic/organizations/logos/bcm.png'))]
ext.delete()
100%|██████████| 2/2 [00:00<00:00, 67.15it/s]
[]
ext.unused()
Loading...
states = dict(
    AL='Alabama',        AK='Alaska',       AZ='Arizona',      AR='Arkansas',
    CA='California',     CO='Colorado',     CT='Connecticut',  DE='Delaware',
    FL='Florida',        GA='Georgia',      HI='Hawaii',       ID='Idaho', 
    IL='Illinois',       IN='Indiana',      IA='Iowa',         KS='Kansas',
    KY='Kentucky',       LA='Louisiana',    ME='Maine',        MD='Maryland',
    MA='Massachusetts',  MI='Michigan',     MN='Minnesota',    MS='Mississippi',
    MO='Missouri',       MT='Montana',      NE='Nebraska',     NV='Nevada',
    NH='New Hampshire',  NJ='New Jersey',   NM='New Mexico',   NY='New York',
    NC='North Carolina', ND='North Dakota', OH='Ohio',         OK='Oklahoma',
    OR='Oregon',         PA='Pennsylvania', RI='Rhode Island', SC='South Carlina',
    SD='South Dakota',   TN='Tennessee',    TX='Texas',        UT='Utah',
    VT='Vermont',        VA='Virginia',     WA='Washington',   WV='West Virginia', 
    WI='Wisconsin',      WY='Wyoming')
@schema
class State(dj.Lookup):
    definition = """
    # United States
    state_code : char(2)
    ---
    state : varchar(20)
    """
    contents = states.items()
State()
Loading...
@schema
class StateBird(dj.Imported):
    definition = """
    -> State
    ---
    bird_image : filepath@remote    
    """
    path = os.path.join(dj.config['stores']['remote']['stage'], 'states', 'birds')
    
    
    def make(self, key):
        os.makedirs(self.path, exist_ok=True)
        state = (State & key).fetch1('state')
        url = "http://www.theus50.com/images/state-birds/{state}-bird.jpg".format(state=state.lower())
        local_file = os.path.join(self.path, state.lower() + os.path.splitext(url)[1])
        print(local_file)
        with open(local_file, 'wb') as f:
            f.write(requests.get(url).content)
        self.insert1(dict(key, bird_image=local_file))        
StateBird.populate()
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/alaska.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/alabama.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/arkansas.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/arizona.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/california.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/colorado.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/connecticut.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/delaware.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/florida.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/georgia.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/hawaii.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/iowa.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/idaho.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/illinois.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/indiana.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/kansas.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/kentucky.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/louisiana.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/massachusetts.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/maryland.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/maine.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/michigan.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/minnesota.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/missouri.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/mississippi.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/montana.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/north carolina.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/north dakota.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/nebraska.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/new hampshire.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/new jersey.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/new mexico.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/nevada.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/new york.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/ohio.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/oklahoma.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/oregon.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/pennsylvania.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/rhode island.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/south carlina.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/south dakota.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/tennessee.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/texas.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/utah.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/virginia.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/vermont.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/washington.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/wisconsin.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/west virginia.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/birds/wyoming.jpg
@schema
class StateFlower(dj.Imported):
    definition = """
    -> State
    ---
    flower_image : filepath@remote    
    """
    path = os.path.join(dj.config['stores']['remote']['stage'],'states', 'flowers')
    
    
    def make(self, key):
        os.makedirs(self.path, exist_ok=True)
        state = (State & key).fetch1('state')
        url = "http://www.theus50.com/images/state-birds/{state}-flower.jpg".format(state=state.lower())
        local_file = os.path.join(self.path, state.lower() + os.path.splitext(url)[1])
        print(local_file)
        with open(local_file, 'wb') as f:
            f.write(requests.get(url).content)
        self.insert1(dict(key, flower_image=local_file))     
StateFlower().populate()
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/alaska.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/alabama.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/arkansas.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/arizona.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/california.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/colorado.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/connecticut.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/delaware.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/florida.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/georgia.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/hawaii.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/iowa.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/idaho.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/illinois.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/indiana.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/kansas.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/kentucky.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/louisiana.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/massachusetts.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/maryland.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/maine.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/michigan.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/minnesota.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/missouri.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/mississippi.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/montana.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/north carolina.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/north dakota.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/nebraska.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/new hampshire.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/new jersey.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/new mexico.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/nevada.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/new york.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/ohio.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/oklahoma.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/oregon.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/pennsylvania.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/rhode island.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/south carlina.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/south dakota.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/tennessee.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/texas.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/utah.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/virginia.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/vermont.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/washington.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/wisconsin.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/west virginia.jpg
/home/dimitri/dev/db-programming-with-datajoint/notebooks/stage/states/flowers/wyoming.jpg
dj.Diagram(schema)
Loading...
schema.external
External file tables for schema `dimitri_filepath`: "remote" s3:code-clinic"
schema.external['remote']
Loading...
schema.external['remote'].fetch_external_paths()
[(UUID('01d9c579-f923-81d1-8f35-c7fddbf171f4'), PurePosixPath('code-clinic/states/flowers/maine.jpg')), (UUID('01f19f6d-e7d3-b718-8b1b-8122a2116973'), PurePosixPath('code-clinic/states/birds/texas.jpg')), (UUID('02621cc5-6215-f043-2297-1844393d603b'), PurePosixPath('code-clinic/states/flowers/iowa.jpg')), (UUID('0315aac9-440c-ed4f-f6d1-1581547212be'), PurePosixPath('code-clinic/states/birds/indiana.jpg')), (UUID('0427f842-2a48-a302-af48-fc2973d8fbbe'), PurePosixPath('code-clinic/states/birds/kentucky.jpg')), (UUID('056a7914-856d-3f8e-7880-6432ab313d58'), PurePosixPath('code-clinic/states/flowers/west virginia.jpg')), (UUID('09adf4ec-d9c7-ee18-868e-e577a9ea8731'), PurePosixPath('code-clinic/states/birds/south dakota.jpg')), (UUID('0e1c29e6-6bf1-5d23-1e06-cc9ee05d79d9'), PurePosixPath('code-clinic/states/birds/north dakota.jpg')), (UUID('114da747-fee3-a47d-e90b-be2e1cc0bfe0'), PurePosixPath('code-clinic/states/flowers/washington.jpg')), (UUID('17f485a8-eca3-d740-9100-7bc6caae9faa'), PurePosixPath('code-clinic/states/birds/new york.jpg')), (UUID('184bd7b2-9885-89dd-7da6-e425fbe535f2'), PurePosixPath('code-clinic/states/flowers/missouri.jpg')), (UUID('1b0a55dd-344c-e06e-7bfe-7e0f5ca5c188'), PurePosixPath('code-clinic/states/birds/minnesota.jpg')), (UUID('1e9a63ab-7dd3-9735-2e4c-d03b679709c1'), PurePosixPath('code-clinic/states/birds/michigan.jpg')), (UUID('22647fa9-bcd3-417b-797a-2c98ea6904aa'), PurePosixPath('code-clinic/states/flowers/virginia.jpg')), (UUID('246b2008-8f03-31e0-6d34-db8ccfc39494'), PurePosixPath('code-clinic/states/birds/maine.jpg')), (UUID('24fcd4ca-a9eb-ca77-b1bd-9430c6fbb51b'), PurePosixPath('code-clinic/states/flowers/california.jpg')), (UUID('277679c0-f7b2-f54c-1d3b-f19e8b0d15f9'), PurePosixPath('code-clinic/states/flowers/massachusetts.jpg')), (UUID('2a34aa82-edb9-5064-b773-0b6d9e51cdb0'), PurePosixPath('code-clinic/states/flowers/north carolina.jpg')), (UUID('2ba8d00e-c4f2-b86e-6870-c4a51395e6f8'), PurePosixPath('code-clinic/states/flowers/new hampshire.jpg')), (UUID('2bbb860f-df7b-cd91-aa42-9e97cbc1dc9d'), PurePosixPath('code-clinic/states/flowers/north dakota.jpg')), (UUID('2ed31b79-217e-63b9-6ef0-91fcd16eb054'), PurePosixPath('code-clinic/states/flowers/michigan.jpg')), (UUID('325725fb-7ec0-23b5-d460-1e026b36dcdf'), PurePosixPath('code-clinic/states/birds/ohio.jpg')), (UUID('3347e424-aa9c-b85f-a8d6-50fd93c8b264'), PurePosixPath('code-clinic/states/flowers/florida.jpg')), (UUID('33b1c381-4cad-6437-42a8-5bcbd1751e6c'), PurePosixPath('code-clinic/states/birds/vermont.jpg')), (UUID('33ed18b0-d09f-334b-62ef-0f83151db34b'), PurePosixPath('code-clinic/states/flowers/wisconsin.jpg')), (UUID('341157e6-d8db-703a-1953-7e422666a173'), PurePosixPath('code-clinic/states/birds/massachusetts.jpg')), (UUID('39a1a53e-a326-0bde-5500-c17024e7703f'), PurePosixPath('code-clinic/states/flowers/mississippi.jpg')), (UUID('3c7d8b20-e576-a604-97ec-f2ca692651dd'), PurePosixPath('code-clinic/states/birds/illinois.jpg')), (UUID('3e382bd8-1d25-6f10-a88a-4b7fa69fcfc1'), PurePosixPath('code-clinic/states/birds/alabama.jpg')), (UUID('3fd4b79b-9fdd-95c0-4074-68614d97f7e1'), PurePosixPath('code-clinic/organizations/logos/pydata.png')), (UUID('428ccfc3-837d-fb1f-8f71-fa2b1fbd5fe5'), PurePosixPath('code-clinic/states/flowers/vermont.jpg')), (UUID('438a5157-bf38-c247-bf71-0a6633eb3fb6'), PurePosixPath('code-clinic/states/birds/oregon.jpg')), (UUID('459d0e6e-be54-3802-2be9-bbb4d0c21e7c'), PurePosixPath('code-clinic/states/flowers/colorado.jpg')), (UUID('45b1800a-7a87-3ad7-70d6-2aad9ad8981b'), PurePosixPath('code-clinic/states/birds/north carolina.jpg')), (UUID('4914c53d-ab3f-d6b3-59c7-790657984757'), PurePosixPath('code-clinic/states/birds/wisconsin.jpg')), (UUID('4a398dae-9893-d31b-867c-c64def9ac541'), PurePosixPath('code-clinic/states/flowers/texas.jpg')), (UUID('4ad20148-4af0-97b1-65e3-47b73f988a00'), PurePosixPath('code-clinic/states/birds/washington.jpg')), (UUID('51f95d0b-7528-1840-1b4f-ffbe04286f9a'), PurePosixPath('code-clinic/states/flowers/nebraska.jpg')), (UUID('56107d48-aa13-e4eb-773d-7b33c2909fe9'), PurePosixPath('code-clinic/states/birds/virginia.jpg')), (UUID('56c820a9-e83c-02c9-8e76-7ba908192588'), PurePosixPath('code-clinic/organizations/logos/utah.png')), (UUID('587ad22e-14a9-b41d-fbb7-13d85702fbd6'), PurePosixPath('code-clinic/states/flowers/kansas.jpg')), (UUID('5ded7dea-8fa2-2450-419d-7fb24ee581e9'), PurePosixPath('code-clinic/states/flowers/south carlina.jpg')), (UUID('61a1dd90-eda9-69de-a7a0-cdbd1627fed1'), PurePosixPath('code-clinic/states/flowers/utah.jpg')), (UUID('628be6e1-f489-2521-7eca-f8690d410019'), PurePosixPath('code-clinic/states/birds/iowa.jpg')), (UUID('6338bb2d-1000-a5ae-3ff2-27deb02171f1'), PurePosixPath('code-clinic/states/birds/mississippi.jpg')), (UUID('637e4577-8098-45d2-ac8f-5d95919a9ccf'), PurePosixPath('code-clinic/states/birds/connecticut.jpg')), (UUID('6b1cd553-5072-0702-98e7-fbc89022bccb'), PurePosixPath('code-clinic/states/flowers/georgia.jpg')), (UUID('6f8df4a5-06f0-5f89-c08d-42b97c192ef4'), PurePosixPath('code-clinic/states/birds/alaska.jpg')), (UUID('6fa95b8c-46e1-ca63-6610-142ab0bcb4af'), PurePosixPath('code-clinic/states/birds/louisiana.jpg')), (UUID('6fb24649-c923-678d-67e1-331b42a2a024'), PurePosixPath('code-clinic/states/birds/oklahoma.jpg')), (UUID('7328d3ca-ccda-bbf5-2d56-1da4b58aaba0'), PurePosixPath('code-clinic/states/birds/wyoming.jpg')), (UUID('75482e52-f840-adc2-0a36-4a50c777bab5'), PurePosixPath('code-clinic/states/birds/new jersey.jpg')), (UUID('7718d696-e868-e61e-fb8c-c2e9236f45a6'), PurePosixPath('code-clinic/states/birds/nevada.jpg')), (UUID('7811a892-4744-15ec-ea51-a3b6562c4396'), PurePosixPath('code-clinic/states/flowers/alaska.jpg')), (UUID('79b941dd-4fbc-a80b-b20e-db91c29b2c40'), PurePosixPath('code-clinic/states/flowers/indiana.jpg')), (UUID('7e5ade5c-f149-1b0d-b4cd-2a1afa4affc2'), PurePosixPath('code-clinic/states/flowers/delaware.jpg')), (UUID('7f21244c-8204-20a6-cc87-2dc5a622132c'), PurePosixPath('code-clinic/states/flowers/wyoming.jpg')), (UUID('7fdc33b3-c7cd-ce42-b662-63796b41656f'), PurePosixPath('code-clinic/states/birds/montana.jpg')), (UUID('80514116-f2d3-f82a-f911-a8d3a0244305'), PurePosixPath('code-clinic/states/birds/utah.jpg')), (UUID('806c070a-5bf9-42ff-8174-df2b8b850800'), PurePosixPath('code-clinic/states/birds/arizona.jpg')), (UUID('8120cada-e54c-a91b-a978-b0aee4c92b82'), PurePosixPath('code-clinic/states/flowers/connecticut.jpg')), (UUID('81dc7dae-bebc-6d38-b891-c48eee8e340a'), PurePosixPath('code-clinic/organizations/logos/ucsd.png')), (UUID('86bbbf4b-fa19-6aaa-66bc-321584f267b0'), PurePosixPath('code-clinic/states/birds/hawaii.jpg')), (UUID('870b42da-bae7-1d04-6b71-14d3c20c8db3'), PurePosixPath('code-clinic/states/flowers/oregon.jpg')), (UUID('88aeea31-58c4-786e-9741-0318b2a91ea0'), PurePosixPath('code-clinic/states/birds/georgia.jpg')), (UUID('8c25c65d-506d-f382-0e36-88e1f6057ea3'), PurePosixPath('code-clinic/organizations/logos/pni.png')), (UUID('8ecc5fb1-2de7-405d-e753-17707a8efb6a'), PurePosixPath('code-clinic/states/birds/colorado.jpg')), (UUID('932b2892-f641-77c1-4bd6-29ab4a5435dc'), PurePosixPath('code-clinic/states/flowers/oklahoma.jpg')), (UUID('9b87e3d4-90a6-1222-c971-f08e5bbf7f35'), PurePosixPath('code-clinic/states/birds/florida.jpg')), (UUID('9ca7acff-e7fa-6132-aa34-235ff5518644'), PurePosixPath('code-clinic/states/flowers/new jersey.jpg')), (UUID('9d76c6a9-6806-30f0-c5bf-7c1927e98f17'), PurePosixPath('code-clinic/states/birds/arkansas.jpg')), (UUID('9d7d448d-d6d0-9518-bdc6-9f85b636c8fc'), PurePosixPath('code-clinic/states/birds/delaware.jpg')), (UUID('a108e5b1-7a55-063b-95ba-a4adad6c5724'), PurePosixPath('code-clinic/states/birds/west virginia.jpg')), (UUID('a3ae8749-8636-d957-4037-0cca46084e19'), PurePosixPath('code-clinic/states/birds/idaho.jpg')), (UUID('a48c55fa-05e8-0928-1976-a3b4bf405115'), PurePosixPath('code-clinic/states/flowers/louisiana.jpg')), (UUID('a65c4bab-cf70-e4c6-3cc3-ed7e1bcc4e1a'), PurePosixPath('code-clinic/states/birds/missouri.jpg')), (UUID('a9327cbb-baf1-166a-175a-d4c1da6eb8a6'), PurePosixPath('code-clinic/states/flowers/alabama.jpg')), (UUID('a9cc8108-1273-dac5-b7c8-db290b6c53cb'), PurePosixPath('code-clinic/states/flowers/tennessee.jpg')), (UUID('ab5d0504-86a5-bb98-5ebc-b1ebb2cd5a9d'), PurePosixPath('code-clinic/states/birds/nebraska.jpg')), (UUID('b1349a3d-a02a-2b02-ccf9-2750039d5831'), PurePosixPath('code-clinic/states/flowers/kentucky.jpg')), (UUID('b6973144-e881-ff72-a5f3-8325351e3068'), PurePosixPath('code-clinic/states/birds/tennessee.jpg')), (UUID('bd23ff8c-619d-4470-8c19-1b1d4fbe228e'), PurePosixPath('code-clinic/states/birds/rhode island.jpg')), (UUID('beccafba-60c5-dafa-20dc-432197ea4ad9'), PurePosixPath('code-clinic/states/birds/maryland.jpg')), (UUID('bf223a8a-f627-72da-5bf5-3bc53e78babd'), PurePosixPath('code-clinic/states/flowers/ohio.jpg')), (UUID('bf9db2bc-13c7-aa5b-d2ed-80e6a77dc3c7'), PurePosixPath('code-clinic/states/flowers/south dakota.jpg')), (UUID('bfb01da0-82a6-31de-cfd3-ea3dd79863ad'), PurePosixPath('code-clinic/states/birds/new mexico.jpg')), (UUID('c172bb0c-434e-ad47-81ce-2d7861eb4dec'), PurePosixPath('code-clinic/states/birds/kansas.jpg')), (UUID('c2bac2f9-74bb-be06-1f43-9badf662ae42'), PurePosixPath('code-clinic/states/flowers/hawaii.jpg')), (UUID('c30057d1-8f4f-13aa-6f79-3d88c25f31ad'), PurePosixPath('code-clinic/states/birds/pennsylvania.jpg')), (UUID('c3d92ad3-be39-8416-f632-6683842428ed'), PurePosixPath('code-clinic/states/flowers/rhode island.jpg')), (UUID('d2131650-6079-7909-89e0-085cb30f27ea'), PurePosixPath('code-clinic/states/flowers/arizona.jpg')), (UUID('d2351cc0-2379-882a-a0e0-875574b6a1f2'), PurePosixPath('code-clinic/states/birds/california.jpg')), (UUID('e114c51c-e671-53ba-bde2-6d1bdaf478f9'), PurePosixPath('code-clinic/states/birds/new hampshire.jpg')), (UUID('e3afc8d6-3136-5008-ee53-78815b6b7cc3'), PurePosixPath('code-clinic/states/flowers/arkansas.jpg')), (UUID('eba07400-1c2a-d25d-9b7a-84da614f9ae5'), PurePosixPath('code-clinic/states/flowers/maryland.jpg')), (UUID('f35b5a91-38cb-bc7f-ef17-b2ce94bb0131'), PurePosixPath('code-clinic/organizations/logos/python.png')), (UUID('f3d173a2-3998-e56e-3187-d72b9a80e143'), PurePosixPath('code-clinic/states/flowers/minnesota.jpg')), (UUID('f47f158e-6f86-8863-1999-da771defb285'), PurePosixPath('code-clinic/states/flowers/idaho.jpg')), (UUID('f48977ed-bb21-506f-3e93-76c6c6abb0cf'), PurePosixPath('code-clinic/states/flowers/pennsylvania.jpg')), (UUID('f501a5b4-5689-45fb-f062-b33063167bfc'), PurePosixPath('code-clinic/states/flowers/new york.jpg')), (UUID('f509ca79-2169-19fc-b7bc-37d8a3e3c4c8'), PurePosixPath('code-clinic/states/flowers/montana.jpg')), (UUID('f78e4d0e-ed71-734f-86d2-7de0e070dc96'), PurePosixPath('code-clinic/states/flowers/new mexico.jpg')), (UUID('f83d03ce-4e72-7e80-0a49-b0f03479d62c'), PurePosixPath('code-clinic/states/flowers/illinois.jpg')), (UUID('f96070ba-836b-5f3a-2151-73340ba0b5e0'), PurePosixPath('code-clinic/states/birds/south carlina.jpg')), (UUID('fd45e697-bdc4-3408-56e0-2709469f6b7f'), PurePosixPath('code-clinic/states/flowers/nevada.jpg'))]
schema.external['remote'].unused()
Loading...

Remaining issues:

  • Re-inserting the same filepath twice with different contents throws and error. This is fixed by deleting the unused external table entries.
  • Users may need the option to fetch only the paths or object handles without downloading the files. Fetch option or config?
  • Dropping the schema leaves orphaned externals. However, dropping tables works normally.
  • Insert(query) with externals has not tested.