Saravanan666/pypi-org huggingface dataset:
Package: dataset-sh-server
dataset.sh serverUsing Dockerdataset.shserver is available as a docker containerdatasetsh/server, by default it use the following
configuration:data storage folder:/dataset-sh-storage/dataserver config path:/dataset-sh-storage/dataset-sh-server-config.jsonYou can mount a local folder as a persistent storage for this container.create an empty config filedockerrun-v$(pwd):/dataset-sh-storagedatasetsh/serverdataset-sh-server-cliinit# -v $(pwd):/dataset-sh-storage                   -> mount current folder as storage folderimportdockerrun-v$(pwd):/dataset-sh-storage-v/path/to/dataset/file:/tmp/upload.datasetdatasetsh/serverdataset.shimportusername/dataset-name-f/tmp/upload.dataset# -v $(pwd):/dataset-sh-storage                   -> mount current folder as storage folder# -v /path/to/dataset/file:/tmp/upload.dataset    -> mount the file to import# dataset.sh import username/dataset-name -f /tmp/upload.datasetStart serverdockerrun-p8989:8989\# map container:8989 to host:8989 -v $(pwd):/dataset-sh-storage datasetsh/serverWithout DockerYou can also use it without docker.pipinstalldataset_sh_serverCreate an empty config filedataset-sh-server-cliinitStart servergunicorn-b127.0.0.1:8989"dataset_sh_server.app:create_app()"# bind to 0.0.0.0 for external accessdataset.sh-b./importusername/dataset_name-f/path/to/dataset/fileManagement scriptsIf you are using docker, you can use the following management script for you own convenience.#!/bin/bashset-e

must_exist(){localvar_name="$1"localvar_value="$2"if[-z"$var_value"];thenecho"Error: '$var_name' is not defined or empty"exit1fireturn}print_and_execute(){localcmd="$@"echoExecutingCMD:echo$'\t'$cmd$cmd}start_server(){localport=${1:-8989}localstorage_base_path=${2:-$(pwd)}must_existstorage_base_path$storage_base_pathmust_existport$portlocalcmd="docker run -p${port}:8989 -v${storage_base_path}:/dataset-sh-storage datasetsh/server"print_and_execute$cmd}init_config(){localstorage_base_path=${1:-$(pwd)}must_existstorage_base_path$storage_base_pathlocalcmd="docker run -v${storage_base_path}:/dataset-sh-storage  datasetsh/server  python -m dataset_sh_server.cli init"print_and_execute$cmd}set_password(){localusername=${1}localstorage_base_path=${2:-$(pwd)}must_existstorage_base_path$storage_base_pathmust_existusername$usernamelocalcmd="docker run -it -v${storage_base_path}:/dataset-sh-storage  datasetsh/server  python -m dataset_sh_server.cli set-password${username}"print_and_execute$cmd}import_dataset(){localdataset_name=$1localdataset_path=$2localstorage_base_path=${3:-$(pwd)}must_existdataset_name$dataset_namemust_existdataset_path$dataset_pathmust_existstorage_base_path$storage_base_pathlocalcmd="docker run -v${storage_base_path}:/dataset-sh-storage -v${dataset_path}:/tmp/upload.dataset datasetsh/server dataset.sh import${dataset_name}-f /tmp/upload.dataset"print_and_execute$cmd}"$@"
Package: datasets-server-python
Datasets Server Python SDKThis is the Python SDK for using theHuggingface Datasets Server. It is not the official SDK, but it is a good start.
I will try to keep it up to date with the latest version of the Datasets Server.Installationpipinstalldatasets-server-serviceUsagefromdatasets_server_serviceimportDatasetsServerService# You can give your api token here or pass it as HF_DATASETS_SERVER_TOKEN env variableservice=DatasetsServerService()valid_datasets=service.valid_datasets()
Package: datasets-sql
datasets_sqlA 🤗 Datasets extension package that provides support for executing arbitrary SQL queries on HF datasets. It usesDuckDBas a SQL engine and follows itsquery syntax.Installationpipinstalldatasets_sqlQuick Startfromdatasetsimportload_dataset,Datasetfromdatasets_sqlimportqueryimdb_dset=load_dataset("imdb",split="train")# Remove the rows where the `text` field has less than 1000 charactersimdb_query_dset1=query("SELECT text FROM imdb_dset WHERE length(text) > 1000")# Count the number of rows per labelimdb_query_dset2=query("SELECT label, COUNT(*) as num_rows FROM imdb_dset GROUP BY label")# Remove duplicated rowsimdb_query_dset3=query("SELECT DISTINCT text FROM imdb_dset")# Get the average length of the `text` fieldimdb_query_dset4=query("SELECT AVG(length(text)) as avg_text_length FROM imdb_dset")order_customer_dset=Dataset.from_dict({"order_id":[10001,10002,10003],"customer_id":[3,1,2],})customer_dset=Dataset.from_dict({"customer_id":[1,2,3],"name":["John","Jane","Mary"],})# Join two tablesjoin_query_dset=query("SELECT order_id, name FROM order_customer_dset INNER JOIN customer_dset ON order_customer_dset.customer_id = customer_dset.customer_id")
Package: datasets-summarizer
DatasetsSummarizerDatasets Summarizer is compatible with Jupyter Notebooks. Need the x and y values based on any similarity metric to generated the similarity plot between datasets. Supports the metadata format generated bydatamart-profilerlibrary to generate the Detail View to explore each dataset.( Click one dataset from the list of results to open the Detail View.)DemoLive demo (Google Colab):Dataset results for Taxi queryIn Jupyter Notebook:importDatasetsSummarizerdata=DatasetsSummarizer.get_taxi_data()DatasetsSummarizer.plot_datasets_summary(data)InstallOption 1: install via pip:pip install datasets-summarizerCustom similarity metricUse a subset or add a new entry (xandyvalues ) based on a different similatiry metric. For example, here we addedxandyvalues based on a similarity metric using a modified version of the titles. Note thatmodif_title_xandmodif_title_ymust be included in the dataframe.new_similarity_metrics=[{'name':'Title','x':'title_x','y':'title_y'},{'name':'ModifiedTitle','x':'modif_title_x','y':'modif_title_y'}]Then, we can pass this new similarity metrics as a parameter of our visualizationDatasetsSummarizer.plot_datasets_summary(dataframe,new_similarity_metrics)
Package: datasetstation
datasetstationdatasetstation 快速下载中文数据集，处理数据集，数据分析、可视化分析，一站式解决数据问题不用等了很久，结果 Timeout不用每次写不规范的数据预处理代码数据可视化分析不规范、每次都要重写非常麻烦兼容 Tensorflow、Pytorch、HG Transformers 等主流的建模工具，一次数据处理，多平台数据建模学习数据处理和分析的方法和流程，帮助你更懂数据快速使用pipinstalldatasetstation# 在 jupyter 中使用，执行下面命令jupyternbextensionenable--pywidgetsnbextension
jupyterlabextensioninstalljupyter-matplotlibfromdatasetstationimportload_dataset,list_datasets# 打印支持的数据集print(list_datasets())# 加载数据及并打印并第一个样本hotel_review=load_dataset('hotel-review')print(hotel_review['train'][0])# 处理数据集 - 给每个样本增加一个文本长度的特征hotel_review=hotel_review.map(lambdax:{"length":len(x["text"])})# 结合 transformers 库，快速使用各种模型处理任务fromtransformersimportAutoTokenizertokenizer=AutoTokenizer.from_pretrained('bert-base-cased')tokenized_dataset=hotel_review.map(lambdax:tokenizer(x['text']),batched=True)更多的关于 dataset 的操作，请参考Huggingface Datasets 文档。目前支持数据集数据集介绍hotel-review【英文】酒店评价情感分析imdb【英文】电影评论情感分析new-title-chinese【中文】新闻标题chinese-hotel-review【中文】携程酒店评价情感分析dbms【中文】豆瓣电影评论、打分数据ez-douban【中文】豆瓣电影信息、打分、评论waimai-review-10k【中文】外卖评价数据 10k 条，正负两种情绪weibo-senti-100k【中文】微博情感分析 100k 条，正负两种情绪simplifyweibo-4-moods【中文】微博情感分析，喜悦、愤怒、厌恶、低落四种情绪eshopping-10-cats【中文】电商 10 种商品评价，正负情感squad【英文】Stanford Question Answering Dataset (SQuAD)stopwords-cn【中文】中文停用词表stopwords-hit【中文】哈工大停用词表stopwords-baidu【中文】百度停用词表stopwords-scu【中文】四川大学机器智能实验室停用词库tangshi唐诗全集songshi宋诗全集songci宋词全集lunyu论语shijing诗经nalanxingde纳兰性德诗集multi_movie_genre多种电影类别分类（陆续上传更多中文数据集）如果你有数据集，希望也能快速使用，请联系作者公众号 @春阳CYang。存储空间有限，先到先得！使用方法和版本迭代每个版本详细的变更日志和使用方法。如果觉得有帮助，希望能给我个星星⭐️协议Apache LicenseCopyright on (c) 2022-present CYang
Package: datasetstore
datasetstoredatasetstore 快速下载中文数据集，处理数据集，数据分析、可视化分析，一站式解决数据问题不用等了很久，结果 Timeout不用每次写不规范的数据预处理代码数据可视化分析不规范、每次都要重写非常麻烦兼容 Tensorflow、Pytorch、HG Transformers 等主流的建模工具，一次数据处理，多平台数据建模学习数据处理和分析的方法和流程，帮助你更懂数据快速使用pipinstalldatasetstore# 在 jupyter 中使用，执行下面命令jupyternbextensionenable--pywidgetsnbextension
jupyterlabextensioninstalljupyter-matplotlibfromdatasetstoreimportload_dataset,list_datasets# 打印支持的数据集print(list_datasets())# 加载数据及并打印并第一个样本hotel_review=load_dataset('hotel-review')print(hotel_review['train'][0])# 处理数据集 - 给每个样本增加一个文本长度的特征hotel_review=hotel_review.map(lambdax:{"length":len(x["text"])})# 结合 transformers 库，快速使用各种模型处理任务fromtransformersimportAutoTokenizertokenizer=AutoTokenizer.from_pretrained('bert-base-cased')tokenized_dataset=hotel_review.map(lambdax:tokenizer(x['text']),batched=True)更多的关于 dataset 的操作，请参考Huggingface Datasets 文档。目前支持数据集数据集介绍hotel-review【英文】酒店评价情感分析imdb【英文】电影评论情感分析new-title-chinese【中文】新闻标题chinese-hotel-review【中文】携程酒店评价情感分析dbms【中文】豆瓣电影评论、打分数据ez-douban【中文】豆瓣电影信息、打分、评论waimai-review-10k【中文】外卖评价数据 10k 条，正负两种情绪weibo-senti-100k【中文】微博情感分析 100k 条，正负两种情绪simplifyweibo-4-moods【中文】微博情感分析，喜悦、愤怒、厌恶、低落四种情绪eshopping-10-cats【中文】电商 10 种商品评价，正负情感squad【英文】Stanford Question Answering Dataset (SQuAD)stopwords-cn【中文】中文停用词表stopwords-hit【中文】哈工大停用词表stopwords-baidu【中文】百度停用词表stopwords-scu【中文】四川大学机器智能实验室停用词库tangshi唐诗全集songshi宋诗全集songci宋词全集lunyu论语shijing诗经nalanxingde纳兰性德诗集（陆续上传更多中文数据集）如果你有数据集，希望也能快速使用，请联系作者公众号 @春阳CYang。存储空间有限，先到先得！使用方法和版本迭代每个版本详细的变更日志和使用方法。.如果觉得有帮助，希望能给我个星星⭐️协议Apache LicenseCopyright on (c) 2022-present CYang
Package: dataset-support
importnumpyasnpimportcv2fromdataset_supportimportsin_paternimg=np.array(cv2.imread("1.png",cv2.IMREAD_GRAYSCALE)).astype(np.float32)/255img=sin_patern(img,shape_sin=100,alpha=0.03,vertical=True,bias=1)cv2.imwrite("2.png",img*255)
Package: datasette
An open source multi-tool for exploring and publishing dataDatasette is a tool for exploring and publishing data. It helps people take data of any shape or size and publish that as an interactive, explorable website and accompanying API.Datasette is aimed at data journalists, museum curators, archivists, local governments, scientists, researchers and anyone else who has data that they wish to share with the world.Explore a demo, watcha video about the projector try it out byuploading and publishing your own CSV data.datasette.iois the official project websiteLatestDatasette NewsComprehensive documentation:https://docs.datasette.io/Examples:https://datasette.io/examplesLive demo of currentmainbranch:https://latest.datasette.io/Questions, feedback or want to talk about the project? Join ourDiscordWant to stay up-to-date with the project? Subscribe to theDatasette newsletterfor tips, tricks and news on what's new in the Datasette ecosystem.InstallationIf you are on a Mac,Homebrewis the easiest way to install Datasette:brew install datasetteYou can also install it usingpiporpipx:pip install datasetteDatasette requires Python 3.7 or higher. We also havedetailed installation instructionscovering other options such as Docker.Basic usagedatasette serve path/to/database.dbThis will start a web server on port 8001 - visithttp://localhost:8001/to access the web interface.serveis the default subcommand, you can omit it if you like.Use Chrome on OS X? You can run datasette against your browser history like so:datasette ~/Library/Application\ Support/Google/Chrome/Default/History --nolockNow visitinghttp://localhost:8001/History/downloadswill show you a web interface to browse your downloads data:metadata.jsonIf you want to include licensing and source information in the generated datasette website you can do so using a JSON file that looks something like this:{
    "title": "Five Thirty Eight",
    "license": "CC Attribution 4.0 License",
    "license_url": "http://creativecommons.org/licenses/by/4.0/",
    "source": "fivethirtyeight/data on GitHub",
    "source_url": "https://github.com/fivethirtyeight/data"
}Save this inmetadata.jsonand run Datasette like so:datasette serve fivethirtyeight.db -m metadata.jsonThe license and source information will be displayed on the index page and in the footer. They will also be included in the JSON produced by the API.datasette publishIf you haveHerokuorGoogle Cloud Runconfigured, Datasette can deploy one or more SQLite databases to the internet with a single command:datasette publish heroku database.dbOr:datasette publish cloudrun database.dbThis will create a docker image containing both the datasette application and the specified SQLite database files. It will then deploy that image to Heroku or Cloud Run and give you a URL to access the resulting website and API.SeePublishing datain the documentation for more details.Datasette LiteDatasette Liteis Datasette packaged using WebAssembly so that it runs entirely in your browser, no Python web application server required. Read more about that in theDatasette Lite documentation.
Package: datasette-annotate
datasette-annotateDatasette plugin for annotating / labelling your training data.InstallationInstall this plugin in the same environment as Datasette.datasette install datasette-annotateOnly theroot actorwill have access to create (write) annotations.UsageYou can start the annotation process by going to the/database_name/table_name/-/annotatepage. This table should be configured to specify which annotation labels can be selected, see below. Annotations will be written to the tabletable_name_annotations.ConfigurationTo add annotations for a table it must have a primary key column. The possible labels for each table should be configured by adding the following settings to themetadata.json:{"databases":{"my_database":{"tables":{"training_data":{"plugins":{"datasette-annotate":{"labels":["ABSTAIN","HAM","SPAM"]}}}}}}}If you are usingmetadata.ymlthe configuration should look like this:databases:my_database:tables:training_data:plugins:datasette-annotate:labels:-ABSTAIN-HAM-SPAMDevelopmentTo set up this plugin locally, first checkout the code. Then create a new virtual environment:cd datasette-annotate
python3 -m venv venv
source venv/bin/activateNow install the dependencies and test dependencies:pip install -e '.[test]'To run the tests:pytest
Package: datasette-auth0
datasette-auth0Datasette plugin that authenticates users usingAuth0SeeSimplest possible OAuth authentication with Auth0for more about how this plugin works.InstallationInstall this plugin in the same environment as Datasette.$ datasette install datasette-auth0DemoYou can try this out atdatasette-auth0-demo.datasette.io- click on the top right menu icon and select "Sign in with Auth0".Initial configurationFirst, create a new application in Auth0. You will need the domain, client ID and client secret for that application.The domain should be something likemysite.us.auth0.com.Addhttp://127.0.0.1:8001/-/auth0-callbackto the list of Allowed Callback URLs.Then configure these plugin secrets usingmetadata.yml:plugins:datasette-auth0:domain:"$env":AUTH0_DOMAINclient_id:"$env":AUTH0_CLIENT_IDclient_secret:"$env":AUTH0_CLIENT_SECRETOnly theclient_secretneeds to be kept secret, but for consistency I recommend using the$envmechanism for all three.In development, you can run Datasette and pass in environment variables like this:AUTH0_DOMAIN="your-domain.us.auth0.com" \
AUTH0_CLIENT_ID="...client-id-goes-here..." \
AUTH0_CLIENT_SECRET="...secret-goes-here..." \
datasette -m metadata.ymlIf you are deploying usingdatasette publishyou can pass these using--plugin-secret. For example, to deploy using Cloud Run you might run the following:datasette publish cloudrun mydatabase.db \
--install datasette-auth0 \
--plugin-secret datasette-auth0 domain "your-domain.us.auth0.com" \
--plugin-secret datasette-auth0 client_id "your-client-id" \
--plugin-secret datasette-auth0 client_secret "your-client-secret" \
--service datasette-auth0-demoOnce your Datasette instance is deployed, you will need to add its callback URL to the "Allowed Callback URLs" list in Auth0.The callback URL should be something like:https://url-to-your-datasette/-/auth0-callbackUsageOnce installed, a "Sign in with Auth0" menu item will appear in the Datasette main menu.You can sign in and then visit the/-/actorpage to see full details of theauth0profile that has been authenticated.You can then useDatasette permissionsto grant or deny access to different parts of Datasette based on the authenticated user.DevelopmentTo set up this plugin locally, first checkout the code. Then create a new virtual environment:cd datasette-auth0
python3 -mvenv venv
source venv/bin/activateNow install the dependencies and test dependencies:pip install -e '.[test]'To run the tests:pytest
Package: datasette-auth-osm
datasette-auth-osmDatasette plugin that authenticates users against OpenStreetMapInstallationInstall this plugin in the same environment as Datasette.datasette install datasette-auth-osmDemoYou can try this out atdatasette-auth-osm.madflex.de- click on the top right menu icon and select "Sign in with OpenStreetMap".Initial configurationFirst, create a new application inOpenstreetmap - OAuth2 Applications.
You will need the client ID and client secret for that application.Addhttp://127.0.0.1:8001/-/osm-callbackto the list of Allowed Callback URLs.Then configure these plugin secrets usingmetadata.yml:plugins:datasette-auth-osm:client_id:"$env":OSM_CLIENT_IDclient_secret:"$env":OSM_CLIENT_SECRETIn development, you can run Datasette and pass in environment variables like this:OSM_CLIENT_ID="...client-id-goes-here..." \
OSM_CLIENT_SECRET="...secret-goes-here..." \
datasette -m metadata.ymlIf you are deploying usingdatasette publishyou can pass these using--plugin-secret. For example, to deploy using Cloud Run you might run the following:datasette publish cloudrun mydatabase.db \
--install datasette-auth-osm \
--plugin-secret datasette-auth-osm client_id "your-client-id" \
--plugin-secret datasette-auth-osm client_secret "your-client-secret" \
--service datasette-auth-osm-demoOnce your Datasette instance is deployed, you will need to add its callback URL to the "Allowed Callback URLs" list yourOAuth2 applicationin OpenStreetMap.The callback URL should be something like:https://url-to-your-datasette/-/osm-callbackDevelopmentTo set up this plugin locally, first checkout the code. Then create a new virtual environment:cd datasette-auth-osm
python3 -m venv venv
source venv/bin/activateNow install the dependencies and test dependencies:pip install -e '.[test]'To run the tests:pytest
Package: datasette-backup
datasette-backupPlugin adding backup options to DatasetteInstallationInstall this plugin in the same environment as Datasette.$ datasette install datasette-backupUsageOnce installed, you can download a SQL backup of any of your databases from:/-/backup/dbname.sqlDevelopmentTo set up this plugin locally, first checkout the code. Then create a new virtual environment:cd datasette-backup
python3 -mvenv venv
source venv/bin/activateOr if you are usingpipenv:pipenv shellNow install the dependencies and tests:pip install -e '.[test]'To run the tests:pytest
Package: datasette-base64
datasette-base64SQL functions to decode and encode base64 stringsInstallationInstall this plugin in the same environment as Datasette.$ datasette install datasette-base64Usageselect base64decode(
    "QmxhZGUgUnVubmVy"
)

select base64encode(
    "Blade Runner"
)DevelopmentTo set up this plugin locally, first checkout the code. Then create a new virtual environment:cd datasette-base64
python3 -mvenv venv
source venv/bin/activateOr if you are usingpipenv:pipenv shellNow install the dependencies and tests:pip install -e '.[test]'To run the tests:pytest
Package: datasette-basemap
datasette-basemapA basemap for Datasette and datasette-leafletInstallationInstall this plugin in the same environment as Datasette.$ datasette install datasette-basemapUsageThis plugin will make abasemapdatabase available containing OpenStreetMap tiles in thembtilesformat. It is designed for use with thedatasette-tilestile server plugin.DemoYou can preview this map athttps://datasette-tiles-demo.datasette.io/-/tiles/basemapand browse the database directly athttps://datasette-tiles-demo.datasette.io/basemapLicenseThe data bundled with this package is © OpenStreetMap contributors, licensed under theOpen Data Commons Open Database License. Seethis pagefor more details.DevelopmentTo set up this plugin locally, first checkout the code. Then create a new virtual environment:cd datasette-basemap
python3 -mvenv venv
source venv/bin/activateOr if you are usingpipenv:pipenv shellNow install the dependencies and tests:pip install -e '.[test]'To run the tests:pytest
Package: datasette-block
datasette-blockBlock all access to specific path prefixesInstallationInstall this plugin in the same environment as Datasette.$ datasette install datasette-blockConfigurationAdd the following tometadata.jsonto block specific path prefixes:{"plugins":{"datasette-block":{"prefixes":["/all/"]}}}This will cause a 403 error to be returned for any path beginning with/all/.This blocking happens as an ASGI wrapper around Datasette.Why would you need this?You almost always would not. I use it withdatasette-ripgrepto block access to static assets for unauthenticated users.DevelopmentTo set up this plugin locally, first checkout the code. Then create a new virtual environment:cd datasette-block
python3 -mvenv venv
source venv/bin/activateOr if you are usingpipenv:pipenv shellNow install the dependencies and tests:pip install -e '.[test]'To run the tests:pytest
Package: datasette-bplist
datasette-bplistDatasette plugin for working with Apple'sbinary plistformat.This plugin adds two features: a display hook and a SQL function.The display hook will detect any database values that are encoded using the binary plist format. It will decode them, convert them into JSON and display them pretty-printed in the Datasette UI.The SQL functionbplist_to_json(value)can be used inside a SQL query to convert a binary plist value into a JSON string. This can then be used with SQLite'sjson_extract()function or with thedatasette-jqplugin to further analyze that data as part of a SQL query.Install this plugin in the same environment as Datasette to enable this new functionality:pip install datasette-bplistTrying it outIf you use a Mac you already have plenty of SQLite databases that contain binary plist data.One example is the database that powers the Apple Photos app.This database tends to be locked, so you will need to create a copy of the database in order to run queries against it:cp ~/Pictures/Photos\ Library.photoslibrary/database/photos.db /tmp/photos.dbThe database also makes use of custom SQLite extensions which prevent it from opening in Datasette.You can work around this by exporting the data that you want to experiment with into a new SQLite file.I recommend trying this plugin against theRKMaster_dataNotetable, which contains plist-encoded EXIF metadata about the photos you have taken.You can export that table into a fresh database like so:sqlite3 /tmp/photos.db ".dump RKMaster_dataNote" | sqlite3 /tmp/exif.dbNow rundatasette /tmp/exif.dband you can start trying out the plugin.Using the bplist_to_json() SQL functionOnce you have theexif.dbdemo working, you can try thebplist_to_json()SQL function.Here's a query that shows the camera lenses you have used the most often to take photos:select
    json_extract(
        bplist_to_json(value),
        "$.{Exif}.LensModel"
    ) as lens,
    count(*) as n
from RKMaster_dataNote
group by lens
order by n desc;If you have a large number of photos this query can take a long time to execute, so you may need to increase the SQL time limit enforced by Datasette like so:$ datasette /tmp/exif.db \
    --config sql_time_limit_ms:10000Here's another query, showing the time at which you took every photo in your library which is classified as as screenshot:select
    attachedToId,
    json_extract(
        bplist_to_json(value),
        "$.{Exif}.DateTimeOriginal"
    )
from RKMaster_dataNote
where
    json_extract(
        bplist_to_json(value),
        "$.{Exif}.UserComment"
    ) = "Screenshot"And if you install thedatasette-cluster-mapplugin, this query will show you a map of your most recent 1000 photos:select
    *, 
    json_extract(
        bplist_to_json(value),
        "$.{GPS}.Latitude"
    ) as latitude,
    -json_extract(
        bplist_to_json(value),
        "$.{GPS}.Longitude"
    ) as longitude,
    json_extract(
        bplist_to_json(value),
        "$.{Exif}.DateTimeOriginal"
    ) as datetime
from
    RKMaster_dataNote
where
    latitude is not null
order by
    attachedToId desc