Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/analyticsinmotion/julia-packages-data

Collecting and maintaining crucial Julia package data, including Names, UUIDs, and download statistics, for enhanced accessibility, insight, and discoverability.
https://github.com/analyticsinmotion/julia-packages-data

julia julia-language julia-library julia-package julia-package-names julia-package-uuid julia-programming julia-tools julialang juliapackage juliaprogramming juliatools

Last synced: 3 days ago
JSON representation

Collecting and maintaining crucial Julia package data, including Names, UUIDs, and download statistics, for enhanced accessibility, insight, and discoverability.

Awesome Lists containing this project

README

        






Julia Packages Data

Tweet

[![Julia](https://img.shields.io/badge/Julia-9558B2?logo=julia&logoColor=white)](https://julialang.org/)  
[![MIT license](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/analyticsinmotion/julia-packages-data/blob/main/LICENSE)  
![Status: Stable](https://img.shields.io/badge/Status-Stable-brightgreen)  
[![Julia Packages Data](https://github.com/analyticsinmotion/julia-packages-data/actions/workflows/update-package-names.yml/badge.svg)](https://github.com/analyticsinmotion/julia-packages-data/actions/workflows/update-package-names.yml)  
[![Julia Package Requests](https://github.com/analyticsinmotion/julia-packages-data/actions/workflows/update-package-requests.yml/badge.svg)](https://github.com/analyticsinmotion/julia-packages-data/actions/workflows/update-package-requests.yml)  
[![Analytics in Motion](https://raw.githubusercontent.com/analyticsinmotion/.github/main/assets/images/analytics-in-motion-github-badge-rounded.svg)](https://www.analyticsinmotion.com)  


:wave: Welcome to the Julia Packages Data Repository on GitHub!

## About this Project
This repository offers a systematic and consistent mapping of all Julia package names to their Universally Unique Identifiers (UUIDs). Our aim is to maintain an accurate and current record of these essential identifiers which can then be utilized to enhance other datasets, including the Julia package download statistics. This approach offers valuable insights into the Julia package ecosystem, making it easier for users and developers to access and analyze the relevant information.

Thank you for being a part of the Julia Package Data Repository. Explore, and stay informed with the latest in Julia Packages Data. Your support and involvement are greatly appreciated!


## Files available in Julia Packages Data
The following table provides an overview of the data that can be accessed in this repository.

| File Name | Updated | Description |
| ------------- | ------------- | ------------- |
| julia_package_names.csv | Daily | Matches all current Julia Package Names to their UUID. |
| julia_package_requests.csv | Daily | Total request count for all Julia Packages. |
| julia_package_requests_by_date.csv | Daily | The request counts by date for all Julia Packages. |
| julia_package_requests_by_region.csv | Daily | Total requests for each Julia Package, categorized by geographical region. |
| julia_package_requests_by_region_by_date.csv | Daily | Request counts for each Julia Package, split by Geographical Region, and request date. |


## How to access and download data files

There are two methods that can be used to access and download the data files:

### Download directly from GitHub

1. Click on the link from the table able to access the raw version of the data file. Some of the files are quite large so the data may not show in the screen. This is perfectly fine and will not affect the download at all.

2. Click the "Download" button located at the top right of the screen to download the raw data file to your local machine. If prompted, choose a location to save the file.


### Using Julia to access data

1. Install the required packages:

```julia
using Pkg; Pkg.add(["HTTP", "CSV", "DataFrames"])
```

2. Import the required modules:
```julia
using HTTP, CSV, DataFrames
```

3. Create a helper function:
```julia
function get_julia_package_data(file_name::String, return_dataframe::Bool=true, download_csv::Bool=false)
url = string("https://raw.githubusercontent.com/analyticsinmotion/julia-packages-data/main/data/", file_name)
response = HTTP.get(url)
response.status == 200 || error("Failed to retrieve data from the URL")
df_julia_package_data = IOBuffer(response.body) |> CSV.File |> DataFrame
download_csv ? CSV.write("julia_package_names.csv", df_julia_package_data) : nothing
return return_dataframe ? df_julia_package_data : nothing
end
```

4. Call the following helper functions




For *Julia Package Names*
```julia
# Variable values of true, true will return the DataFrame within Julia and also export it as a CSV file
file_name = "julia_package_names.csv"
get_julia_package_data(file_name, true, true)
```

For *Julia Package Requests*
```julia
# Variable values of true, true will return the DataFrame within Julia and also export it as a CSV file
file_name = "julia_package_requests.csv"
get_julia_package_data(file_name, true, true)
```

For *Julia Package Requests by Date*
```julia
# Variable values of true, true will return the DataFrame within Julia and also export it as a CSV file
file_name = "julia_package_requests_by_date.csv"
get_julia_package_data(file_name, true, true)
```

For *Julia Package Requests by Region*
```julia
# Variable values of true, true will return the DataFrame within Julia and also export it as a CSV file
file_name = "julia_package_requests_by_region.csv"
get_julia_package_data(file_name, true, true)
```

For *Julia Package Requests by Region by Date*
```julia
# Variable values of true, true will return the DataFrame within Julia and also export it as a CSV file
file_name = "julia_package_requests_by_region_by_date.csv"
get_julia_package_data(file_name, true, true)
```



## Data Dictionary

### Julia Package Names

The julia_package_names.csv file contains a list of all current Julia package names along with their corresponding Universally Unique Identifier (UUID).


**File Details**


*Filename:* julia_package_names


*Extension:* .csv


*Delimiter:* Comma (,)


*Header:* True


**File Schema**
| Column Name | Data Type | Description |
| ------------- | ------------- | ------------- |
| package_name | String | The name of the Julia Package |
| package_uuid | String | The Universally Unique Identifier (UUID) for the Julia Package |