├── README.md ├── _init_paths.py ├── config ├── h2t.config ├── j-hmdb.config ├── ucf-101.config └── ucf-sports.config ├── data ├── embedding-example.png ├── h2t │ ├── annotations │ │ ├── all_videos.txt │ │ ├── testlist.txt │ │ └── trainlist.txt │ └── wtv │ │ └── h2t-wtv.npy ├── j-hmdb │ ├── annotations │ │ ├── all_videos.txt │ │ ├── test-split1.txt │ │ └── train-split1.txt │ └── wtv │ │ └── jhmdb-wtv.npy ├── mscoco │ ├── mscoco-wtv.npy │ ├── mscoco_classes.txt │ └── mscoco_priors_new.npy ├── ucf-101 │ ├── annotations │ │ ├── all_videos.txt │ │ ├── test_split01.txt │ │ └── train_split01.txt │ └── wtv │ │ └── ucf-101-wtv.npy ├── ucf-sports │ ├── annotations │ │ ├── all_videos.txt │ │ ├── test_split.txt │ │ └── train_split.txt │ └── wtv │ │ └── sports-wtv.npy └── visualization-example.png ├── helper.py ├── local_detect.py ├── local_link.py ├── local_score.py ├── visualize ├── example │ ├── frames │ │ ├── 0001.jpg │ │ ├── 0002.jpg │ │ ├── 0003.jpg │ │ ├── 0004.jpg │ │ ├── 0005.jpg │ │ ├── 0006.jpg │ │ ├── 0007.jpg │ │ ├── 0008.jpg │ │ ├── 0009.jpg │ │ ├── 0010.jpg │ │ ├── 0011.jpg │ │ ├── 0012.jpg │ │ ├── 0013.jpg │ │ ├── 0014.jpg │ │ ├── 0015.jpg │ │ ├── 0016.jpg │ │ ├── 0017.jpg │ │ ├── 0018.jpg │ │ ├── 0019.jpg │ │ ├── 0020.jpg │ │ ├── 0021.jpg │ │ ├── 0022.jpg │ │ ├── 0023.jpg │ │ ├── 0024.jpg │ │ ├── 0025.jpg │ │ ├── 0026.jpg │ │ ├── 0027.jpg │ │ ├── 0028.jpg │ │ ├── 0029.jpg │ │ ├── 0030.jpg │ │ ├── 0031.jpg │ │ ├── 0032.jpg │ │ ├── 0033.jpg │ │ ├── 0034.jpg │ │ ├── 0035.jpg │ │ ├── 0036.jpg │ │ ├── 0037.jpg │ │ ├── 0038.jpg │ │ ├── 0039.jpg │ │ ├── 0040.jpg │ │ ├── 0041.jpg │ │ ├── 0042.jpg │ │ ├── 0043.jpg │ │ ├── 0044.jpg │ │ ├── 0045.jpg │ │ ├── 0046.jpg │ │ ├── 0047.jpg │ │ ├── 0048.jpg │ │ ├── 0049.jpg │ │ ├── 0050.jpg │ │ ├── 0051.jpg │ │ ├── 0052.jpg │ │ ├── 0053.jpg │ │ ├── 0054.jpg │ │ └── 0055.jpg │ └── tube.hdf5 └── visualize_video_tube.py └── word_to_vec.py /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/README.md -------------------------------------------------------------------------------- /_init_paths.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/_init_paths.py -------------------------------------------------------------------------------- /config/h2t.config: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/config/h2t.config -------------------------------------------------------------------------------- /config/j-hmdb.config: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/config/j-hmdb.config -------------------------------------------------------------------------------- /config/ucf-101.config: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/config/ucf-101.config -------------------------------------------------------------------------------- /config/ucf-sports.config: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/config/ucf-sports.config -------------------------------------------------------------------------------- /data/embedding-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/data/embedding-example.png -------------------------------------------------------------------------------- /data/h2t/annotations/all_videos.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/data/h2t/annotations/all_videos.txt -------------------------------------------------------------------------------- /data/h2t/annotations/testlist.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/data/h2t/annotations/testlist.txt -------------------------------------------------------------------------------- /data/h2t/annotations/trainlist.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/data/h2t/annotations/trainlist.txt -------------------------------------------------------------------------------- /data/h2t/wtv/h2t-wtv.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/data/h2t/wtv/h2t-wtv.npy -------------------------------------------------------------------------------- /data/j-hmdb/annotations/all_videos.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/data/j-hmdb/annotations/all_videos.txt -------------------------------------------------------------------------------- /data/j-hmdb/annotations/test-split1.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/data/j-hmdb/annotations/test-split1.txt -------------------------------------------------------------------------------- /data/j-hmdb/annotations/train-split1.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/data/j-hmdb/annotations/train-split1.txt -------------------------------------------------------------------------------- /data/j-hmdb/wtv/jhmdb-wtv.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/data/j-hmdb/wtv/jhmdb-wtv.npy -------------------------------------------------------------------------------- /data/mscoco/mscoco-wtv.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/data/mscoco/mscoco-wtv.npy -------------------------------------------------------------------------------- /data/mscoco/mscoco_classes.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/data/mscoco/mscoco_classes.txt -------------------------------------------------------------------------------- /data/mscoco/mscoco_priors_new.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/data/mscoco/mscoco_priors_new.npy -------------------------------------------------------------------------------- /data/ucf-101/annotations/all_videos.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/data/ucf-101/annotations/all_videos.txt -------------------------------------------------------------------------------- /data/ucf-101/annotations/test_split01.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/data/ucf-101/annotations/test_split01.txt -------------------------------------------------------------------------------- /data/ucf-101/annotations/train_split01.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/data/ucf-101/annotations/train_split01.txt -------------------------------------------------------------------------------- /data/ucf-101/wtv/ucf-101-wtv.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/data/ucf-101/wtv/ucf-101-wtv.npy -------------------------------------------------------------------------------- /data/ucf-sports/annotations/all_videos.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/data/ucf-sports/annotations/all_videos.txt -------------------------------------------------------------------------------- /data/ucf-sports/annotations/test_split.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/data/ucf-sports/annotations/test_split.txt -------------------------------------------------------------------------------- /data/ucf-sports/annotations/train_split.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/data/ucf-sports/annotations/train_split.txt -------------------------------------------------------------------------------- /data/ucf-sports/wtv/sports-wtv.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/data/ucf-sports/wtv/sports-wtv.npy -------------------------------------------------------------------------------- /data/visualization-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/data/visualization-example.png -------------------------------------------------------------------------------- /helper.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/helper.py -------------------------------------------------------------------------------- /local_detect.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/local_detect.py -------------------------------------------------------------------------------- /local_link.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/local_link.py -------------------------------------------------------------------------------- /local_score.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/local_score.py -------------------------------------------------------------------------------- /visualize/example/frames/0001.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0001.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0002.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0002.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0003.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0003.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0004.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0004.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0005.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0005.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0006.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0006.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0007.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0007.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0008.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0008.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0009.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0009.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0010.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0010.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0011.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0011.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0012.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0012.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0013.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0013.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0014.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0014.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0015.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0015.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0016.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0016.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0017.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0017.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0018.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0018.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0019.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0019.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0020.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0020.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0021.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0021.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0022.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0022.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0023.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0023.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0024.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0024.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0025.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0025.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0026.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0026.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0027.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0027.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0028.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0028.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0029.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0029.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0030.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0030.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0031.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0031.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0032.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0032.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0033.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0033.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0034.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0034.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0035.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0035.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0036.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0036.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0037.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0037.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0038.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0038.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0039.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0039.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0040.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0040.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0041.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0041.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0042.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0042.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0043.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0043.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0044.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0044.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0045.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0045.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0046.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0046.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0047.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0047.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0048.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0048.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0049.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0049.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0050.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0050.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0051.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0051.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0052.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0052.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0053.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0053.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0054.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0054.jpg -------------------------------------------------------------------------------- /visualize/example/frames/0055.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/frames/0055.jpg -------------------------------------------------------------------------------- /visualize/example/tube.hdf5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/example/tube.hdf5 -------------------------------------------------------------------------------- /visualize/visualize_video_tube.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/visualize/visualize_video_tube.py -------------------------------------------------------------------------------- /word_to_vec.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/psmmettes/spatial-aware-object-embeddings/HEAD/word_to_vec.py --------------------------------------------------------------------------------