├── .DS_Store
├── .gitignore
├── .vscode
└── settings.json
├── README.md
├── solution.py
├── spotify-2023.csv
└── submissions
├── .DS_Store
├── .gitignore
├── Abhishek-090
├── Index.js
├── package-lock.json
├── package.json
└── spotify-2023.csv
├── Adithiyaa
└── index.py
├── AldairBaku
├── .gitignore
├── index.js
├── package-lock.json
├── package.json
└── spotify-2023.csv
├── AndyTonks
├── file-io.ipynb
└── spotify-2023.csv
├── ArshDawra
└── spotify-parser.py
├── AryanK1511
├── script.py
├── spotify-2023.csv
└── tempCodeRunnerFile.py
├── Avinash238
└── main.py
├── Ayush-Singh
├── spotify-2023.csv
└── spotify_data_analysis.py
├── Ayush786113
└── Solution.java
├── Bltzz
├── .gitignore
├── Haskell
│ ├── .gitignore
│ ├── Readme.md
│ ├── data
│ │ └── spotify-clean.CSV
│ ├── solution.exe
│ └── solution.hs
├── Java
│ ├── .gitignore
│ ├── Analyzer.jar
│ ├── Readme.md
│ ├── data
│ │ └── spotify-clean.CSV
│ ├── lib
│ │ └── opencsv-5.9.jar
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ ├── dataObject
│ │ └── DataObject.java
│ │ └── solution
│ │ └── Analyzer.java
└── Ruby
│ ├── Readme.md
│ ├── data
│ └── spotify-clean.CSV
│ └── solution.rb
├── BlueHeart0065
├── .gitignore
├── index.js
├── package-lock.json
├── package.json
└── spotify-2023.csv
├── BlueHeartSecond
├── index.js
├── node_modules
│ ├── .bin
│ │ ├── csv-parser
│ │ ├── csv-parser.cmd
│ │ └── csv-parser.ps1
│ ├── .package-lock.json
│ ├── @fast-csv
│ │ ├── format
│ │ │ ├── CHANGELOG.md
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── build
│ │ │ │ └── src
│ │ │ │ │ ├── CsvFormatterStream.d.ts
│ │ │ │ │ ├── CsvFormatterStream.js
│ │ │ │ │ ├── CsvFormatterStream.js.map
│ │ │ │ │ ├── FormatterOptions.d.ts
│ │ │ │ │ ├── FormatterOptions.js
│ │ │ │ │ ├── FormatterOptions.js.map
│ │ │ │ │ ├── formatter
│ │ │ │ │ ├── FieldFormatter.d.ts
│ │ │ │ │ ├── FieldFormatter.js
│ │ │ │ │ ├── FieldFormatter.js.map
│ │ │ │ │ ├── RowFormatter.d.ts
│ │ │ │ │ ├── RowFormatter.js
│ │ │ │ │ ├── RowFormatter.js.map
│ │ │ │ │ ├── index.d.ts
│ │ │ │ │ ├── index.js
│ │ │ │ │ └── index.js.map
│ │ │ │ │ ├── index.d.ts
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── index.js.map
│ │ │ │ │ ├── types.d.ts
│ │ │ │ │ ├── types.js
│ │ │ │ │ └── types.js.map
│ │ │ └── package.json
│ │ └── parse
│ │ │ ├── CHANGELOG.md
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── build
│ │ │ └── src
│ │ │ │ ├── CsvParserStream.d.ts
│ │ │ │ ├── CsvParserStream.js
│ │ │ │ ├── CsvParserStream.js.map
│ │ │ │ ├── ParserOptions.d.ts
│ │ │ │ ├── ParserOptions.js
│ │ │ │ ├── ParserOptions.js.map
│ │ │ │ ├── index.d.ts
│ │ │ │ ├── index.js
│ │ │ │ ├── index.js.map
│ │ │ │ ├── parser
│ │ │ │ ├── Parser.d.ts
│ │ │ │ ├── Parser.js
│ │ │ │ ├── Parser.js.map
│ │ │ │ ├── RowParser.d.ts
│ │ │ │ ├── RowParser.js
│ │ │ │ ├── RowParser.js.map
│ │ │ │ ├── Scanner.d.ts
│ │ │ │ ├── Scanner.js
│ │ │ │ ├── Scanner.js.map
│ │ │ │ ├── Token.d.ts
│ │ │ │ ├── Token.js
│ │ │ │ ├── Token.js.map
│ │ │ │ ├── column
│ │ │ │ │ ├── ColumnFormatter.d.ts
│ │ │ │ │ ├── ColumnFormatter.js
│ │ │ │ │ ├── ColumnFormatter.js.map
│ │ │ │ │ ├── ColumnParser.d.ts
│ │ │ │ │ ├── ColumnParser.js
│ │ │ │ │ ├── ColumnParser.js.map
│ │ │ │ │ ├── NonQuotedColumnParser.d.ts
│ │ │ │ │ ├── NonQuotedColumnParser.js
│ │ │ │ │ ├── NonQuotedColumnParser.js.map
│ │ │ │ │ ├── QuotedColumnParser.d.ts
│ │ │ │ │ ├── QuotedColumnParser.js
│ │ │ │ │ ├── QuotedColumnParser.js.map
│ │ │ │ │ ├── index.d.ts
│ │ │ │ │ ├── index.js
│ │ │ │ │ └── index.js.map
│ │ │ │ ├── index.d.ts
│ │ │ │ ├── index.js
│ │ │ │ └── index.js.map
│ │ │ │ ├── transforms
│ │ │ │ ├── HeaderTransformer.d.ts
│ │ │ │ ├── HeaderTransformer.js
│ │ │ │ ├── HeaderTransformer.js.map
│ │ │ │ ├── RowTransformerValidator.d.ts
│ │ │ │ ├── RowTransformerValidator.js
│ │ │ │ ├── RowTransformerValidator.js.map
│ │ │ │ ├── index.d.ts
│ │ │ │ ├── index.js
│ │ │ │ └── index.js.map
│ │ │ │ ├── types.d.ts
│ │ │ │ ├── types.js
│ │ │ │ └── types.js.map
│ │ │ └── package.json
│ ├── @types
│ │ └── node
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── assert.d.ts
│ │ │ ├── async_hooks.d.ts
│ │ │ ├── buffer.d.ts
│ │ │ ├── child_process.d.ts
│ │ │ ├── cluster.d.ts
│ │ │ ├── console.d.ts
│ │ │ ├── constants.d.ts
│ │ │ ├── crypto.d.ts
│ │ │ ├── dgram.d.ts
│ │ │ ├── dns.d.ts
│ │ │ ├── domain.d.ts
│ │ │ ├── events.d.ts
│ │ │ ├── fs.d.ts
│ │ │ ├── fs
│ │ │ └── promises.d.ts
│ │ │ ├── globals.d.ts
│ │ │ ├── globals.global.d.ts
│ │ │ ├── http.d.ts
│ │ │ ├── http2.d.ts
│ │ │ ├── https.d.ts
│ │ │ ├── index.d.ts
│ │ │ ├── inspector.d.ts
│ │ │ ├── module.d.ts
│ │ │ ├── net.d.ts
│ │ │ ├── os.d.ts
│ │ │ ├── package.json
│ │ │ ├── path.d.ts
│ │ │ ├── perf_hooks.d.ts
│ │ │ ├── process.d.ts
│ │ │ ├── punycode.d.ts
│ │ │ ├── querystring.d.ts
│ │ │ ├── readline.d.ts
│ │ │ ├── repl.d.ts
│ │ │ ├── stream.d.ts
│ │ │ ├── string_decoder.d.ts
│ │ │ ├── timers.d.ts
│ │ │ ├── tls.d.ts
│ │ │ ├── trace_events.d.ts
│ │ │ ├── ts4.8
│ │ │ ├── assert.d.ts
│ │ │ ├── async_hooks.d.ts
│ │ │ ├── buffer.d.ts
│ │ │ ├── child_process.d.ts
│ │ │ ├── cluster.d.ts
│ │ │ ├── console.d.ts
│ │ │ ├── constants.d.ts
│ │ │ ├── crypto.d.ts
│ │ │ ├── dgram.d.ts
│ │ │ ├── dns.d.ts
│ │ │ ├── domain.d.ts
│ │ │ ├── events.d.ts
│ │ │ ├── fs.d.ts
│ │ │ ├── fs
│ │ │ │ └── promises.d.ts
│ │ │ ├── globals.d.ts
│ │ │ ├── globals.global.d.ts
│ │ │ ├── http.d.ts
│ │ │ ├── http2.d.ts
│ │ │ ├── https.d.ts
│ │ │ ├── index.d.ts
│ │ │ ├── inspector.d.ts
│ │ │ ├── module.d.ts
│ │ │ ├── net.d.ts
│ │ │ ├── os.d.ts
│ │ │ ├── path.d.ts
│ │ │ ├── perf_hooks.d.ts
│ │ │ ├── process.d.ts
│ │ │ ├── punycode.d.ts
│ │ │ ├── querystring.d.ts
│ │ │ ├── readline.d.ts
│ │ │ ├── repl.d.ts
│ │ │ ├── stream.d.ts
│ │ │ ├── string_decoder.d.ts
│ │ │ ├── timers.d.ts
│ │ │ ├── tls.d.ts
│ │ │ ├── trace_events.d.ts
│ │ │ ├── tty.d.ts
│ │ │ ├── url.d.ts
│ │ │ ├── util.d.ts
│ │ │ ├── v8.d.ts
│ │ │ ├── vm.d.ts
│ │ │ ├── wasi.d.ts
│ │ │ ├── worker_threads.d.ts
│ │ │ └── zlib.d.ts
│ │ │ ├── tty.d.ts
│ │ │ ├── url.d.ts
│ │ │ ├── util.d.ts
│ │ │ ├── v8.d.ts
│ │ │ ├── vm.d.ts
│ │ │ ├── wasi.d.ts
│ │ │ ├── worker_threads.d.ts
│ │ │ └── zlib.d.ts
│ ├── csv-parser
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── bin
│ │ │ └── csv-parser
│ │ ├── index.d.ts
│ │ ├── index.js
│ │ └── package.json
│ ├── fast-csv
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── build
│ │ │ └── src
│ │ │ │ ├── index.d.ts
│ │ │ │ ├── index.js
│ │ │ │ └── index.js.map
│ │ └── package.json
│ ├── lodash.escaperegexp
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── index.js
│ │ └── package.json
│ ├── lodash.groupby
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── index.js
│ │ └── package.json
│ ├── lodash.isboolean
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── index.js
│ │ └── package.json
│ ├── lodash.isequal
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── index.js
│ │ └── package.json
│ ├── lodash.isfunction
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── index.js
│ │ └── package.json
│ ├── lodash.isnil
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── index.js
│ │ └── package.json
│ ├── lodash.isundefined
│ │ ├── LICENSE.txt
│ │ ├── README.md
│ │ ├── index.js
│ │ └── package.json
│ ├── lodash.uniq
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── index.js
│ │ └── package.json
│ └── minimist
│ │ ├── .eslintrc
│ │ ├── .github
│ │ └── FUNDING.yml
│ │ ├── .nycrc
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── example
│ │ └── parse.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── test
│ │ ├── all_bool.js
│ │ ├── bool.js
│ │ ├── dash.js
│ │ ├── default_bool.js
│ │ ├── dotted.js
│ │ ├── kv_short.js
│ │ ├── long.js
│ │ ├── num.js
│ │ ├── parse.js
│ │ ├── parse_modified.js
│ │ ├── proto.js
│ │ ├── short.js
│ │ ├── stop_early.js
│ │ ├── unknown.js
│ │ └── whitespace.js
├── package-lock.json
├── package.json
└── spotify-2023.csv
├── DOSDX19
├── requirements.txt
├── spotify-2023.csv
└── spotify_parser.py
├── Daniel-Badura
├── .gitignore
├── Readme.md
├── main.py
├── modules
│ ├── count_occurrences.py
│ ├── count_songs.py
│ └── count_songs_key.py
└── spotify-2023.csv
├── Dhairya-A-Mehra
├── Result.md
├── main.py
└── spotify-2023.csv
├── Dhanveeryadav
├── README.md
├── requirements.txt
└── spotify.ipynb
├── E-foster
├── .gitignore
├── index.js
├── node_modules
│ ├── .package-lock.json
│ └── csv-parse
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── dist
│ │ ├── cjs
│ │ │ ├── index.cjs
│ │ │ ├── index.d.cts
│ │ │ ├── sync.cjs
│ │ │ └── sync.d.cts
│ │ ├── esm
│ │ │ ├── index.d.ts
│ │ │ ├── index.js
│ │ │ ├── sync.d.ts
│ │ │ └── sync.js
│ │ ├── iife
│ │ │ ├── index.js
│ │ │ └── sync.js
│ │ └── umd
│ │ │ ├── index.js
│ │ │ └── sync.js
│ │ ├── lib
│ │ ├── api
│ │ │ ├── CsvError.js
│ │ │ ├── index.js
│ │ │ ├── init_state.js
│ │ │ ├── normalize_columns_array.js
│ │ │ └── normalize_options.js
│ │ ├── index.d.ts
│ │ ├── index.js
│ │ ├── stream.js
│ │ ├── sync.d.ts
│ │ ├── sync.js
│ │ └── utils
│ │ │ ├── ResizeableBuffer.js
│ │ │ ├── is_object.js
│ │ │ └── underscore.js
│ │ └── package.json
├── package-lock.json
├── package.json
└── spotify-2023.csv
├── GT-Codeur
├── main.py
└── spotify-2023.csv
├── GeekkyCoder
├── .gitignore
├── index.js
├── package-lock.json
├── package.json
└── spotify-2023.csv
├── Haneesh
├── .gitignore
├── index.js
├── package-lock.json
├── package.json
└── spotify-2023.csv
├── Harsh-br0
├── dataProc.py
└── spotify-2023.csv
├── Hrithik-C-A
├── .gitignore
├── package-lock.json
├── package.json
├── script.js
└── spotify-2023.csv
├── Insidiae
├── index.html
├── main.js
├── readme.md
├── spotify-2023.csv
└── style.css
├── JB-Rockstar
├── main_gok.py
└── spotify-2023.csv
├── JPLahoda
├── README.md
├── SpotifyDataLogger.py
└── spotify-2023.csv
├── JarelEze1
├── .DS_Store
├── package-lock.json
├── package.json
├── spotify-2023.csv
├── spotify-analyzer-keyE.js
└── spotify-analyzer.js
├── Jayaswini
└── Spotify
│ ├── .classpath
│ ├── .mvn
│ └── wrapper
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── .project
│ ├── .settings
│ ├── org.eclipse.core.resources.prefs
│ ├── org.eclipse.jdt.apt.core.prefs
│ ├── org.eclipse.jdt.core.prefs
│ ├── org.eclipse.m2e.core.prefs
│ └── org.springframework.ide.eclipse.prefs
│ ├── HELP.md
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ ├── src
│ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── demo
│ │ │ │ ├── OctoberfestApplication.java
│ │ │ │ ├── Services
│ │ │ │ └── CsvServices.java
│ │ │ │ └── controller
│ │ │ │ └── CSVController.java
│ │ └── resources
│ │ │ ├── application.properties
│ │ │ └── spotify-2023.csv
│ └── test
│ │ └── java
│ │ └── com
│ │ └── example
│ │ └── demo
│ │ └── OctoberfestApplicationTests.java
│ └── target
│ ├── classes
│ ├── META-INF
│ │ ├── MANIFEST.MF
│ │ └── maven
│ │ │ └── com.example
│ │ │ └── Octoberfest
│ │ │ ├── pom.properties
│ │ │ └── pom.xml
│ ├── application.properties
│ ├── com
│ │ └── example
│ │ │ └── demo
│ │ │ ├── OctoberfestApplication.class
│ │ │ ├── Services
│ │ │ └── CsvServices.class
│ │ │ └── controller
│ │ │ └── CSVController.class
│ └── spotify-2023.csv
│ └── test-classes
│ └── com
│ └── example
│ └── demo
│ └── OctoberfestApplicationTests.class
├── JohnEsleyer
├── go.mod
└── main.go
├── Joshua-Onyekachukwu
├── Python-Script-for-Spotify-Data-Analysis
│ └── README.md
├── spotify-2023.csv
└── spotify_analysis.py
├── Kamalesh-Seervi
├── go.mod
├── main.go
└── spotify-2023.csv
├── Kttalley
├── spotify-2023.csv
└── spotify-csv-challenges.js
├── Manuela-Chamoso
├── package-lock.json
├── package.json
├── spotify-2023.csv
└── spotify_data_logger.js
├── Neha045
├── app.py
└── spotify-2023.csv
├── Nexus169
├── analysis.py
└── spotify-2023.csv
├── NidhiBolia
├── Main.ipynb
└── spotify-2023.csv
├── PunGrumpy
├── go.mod
├── main.go
└── spotify-2023.csv
├── Raghavan-B
└── spotify_data_analysis.ipynb
├── RazvanCiobanel
├── index.js
├── package-lock.json
├── package.json
└── readme.md
├── RohanSalgare
└── index.py
├── Sanyog_Mishra[DarkRaiderCB]-Ch2
├── info.txt
├── project.py
└── spotify-2023.csv
├── Sanyog_Mishra[DarkRaiderCB]-Ch3
├── info.txt
├── project.py
└── spotify-2023.csv
├── Sanyog_Mishra[DarkRaiderCB]
├── info.txt
├── project.py
└── spotify-2023.csv
├── Sayed-Afnan-Khazi
├── script.py
└── spotify-2023.csv
├── Sayed-Husain
├── SpotifyDataLogger.ipynb
└── SpotifyDataLogger.py
├── Sebastian4090
├── .gitignore
├── index.js
├── package-lock.json
├── package.json
└── spotify-2023.csv
├── Shailaputri_awesome_script
├── spotify-2023.csv
└── spotify_data_logger.py
├── Shubhamm33
├── .gitignore
├── main.py
└── requirements.txt
├── SimardeepSingh
├── .gitignore
├── main.py
└── spotify-2023.csv
├── Sreeram0303
├── .ipynb_checkpoints
│ └── Untitled-checkpoint.ipynb
├── Untitled.ipynb
└── spotify-2023.csv
├── Stellar-X
├── spotify-2023.csv
└── spotify_csv_script.py
├── Subramaniam-dot
└── file.ipynb
├── Suparnaen
├── .gitignore
├── index.js
├── package-lock.json
├── package.json
└── spotify-2023.csv
├── Sylphritz
└── python
│ ├── .gitignore
│ ├── main.py
│ ├── no_3rd_party.py
│ ├── requirements.txt
│ ├── spotify-2023.csv
│ └── spotify-analytics.ipynb
├── T-Crypt
├── requirements.txt
├── spotify-2023.csv
└── spotify.py
├── TJEgbert
├── main.py
└── spotify-2023.csv
├── TerminalEagle
├── .gitignore
├── package-lock.json
├── package.json
└── script.js
├── Toheed07
├── main.ipynb
└── spotify-2023.csv
├── Williamstophef
├── .gitignore
├── index.js
├── node_modules
│ ├── .bin
│ │ ├── csv-parser
│ │ ├── csv-parser.cmd
│ │ └── csv-parser.ps1
│ ├── .package-lock.json
│ ├── csv-parser
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── bin
│ │ │ └── csv-parser
│ │ ├── index.d.ts
│ │ ├── index.js
│ │ └── package.json
│ ├── fs
│ │ ├── README.md
│ │ └── package.json
│ └── minimist
│ │ ├── .eslintrc
│ │ ├── .github
│ │ └── FUNDING.yml
│ │ ├── .nycrc
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── example
│ │ └── parse.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── test
│ │ ├── all_bool.js
│ │ ├── bool.js
│ │ ├── dash.js
│ │ ├── default_bool.js
│ │ ├── dotted.js
│ │ ├── kv_short.js
│ │ ├── long.js
│ │ ├── num.js
│ │ ├── parse.js
│ │ ├── parse_modified.js
│ │ ├── proto.js
│ │ ├── short.js
│ │ ├── stop_early.js
│ │ ├── unknown.js
│ │ └── whitespace.js
├── package-lock.json
├── package.json
└── spotify-2023.csv
├── XanderRubio
├── analysis.py
└── spotify-2023.csv
├── YogiK
├── .gitignore
├── index.js
├── package-lock.json
├── package.json
└── spotify-2023.csv
├── Zhi-Jian-Tiow
├── .gitignore
├── .idea
│ ├── .gitignore
│ ├── misc.xml
│ ├── modules.xml
│ └── vcs.xml
├── CsvReader.java
├── DataProcessor.java
├── README.me
├── SpotifyDataLogger.java
├── out
│ └── production
│ │ └── Zhi-Jian-Tiow
│ │ ├── .gitignore
│ │ ├── .idea
│ │ ├── .gitignore
│ │ ├── misc.xml
│ │ ├── modules.xml
│ │ └── vcs.xml
│ │ ├── README.me
│ │ ├── Zhi-Jian-Tiow.iml
│ │ └── spotify-2023.csv
└── spotify-2023.csv
├── aaditkamat
├── .gitignore
├── README.md
├── process.py
└── requirements.txt
├── abeonweb
├── main.js
├── package-lock.json
├── package.json
└── spotify-2023.csv
├── ahmadalmasri95
├── main.py
└── spotify-2023.csv
├── ahmedalhamad7
└── main.py
├── alifanza259
├── .classpath
├── .gitignore
├── .idea
│ ├── .gitignore
│ ├── compiler.xml
│ ├── encodings.xml
│ ├── jarRepositories.xml
│ ├── libraries
│ │ ├── Maven__com_opencsv_opencsv_5_0.xml
│ │ ├── Maven__commons_beanutils_commons_beanutils_1_9_4.xml
│ │ ├── Maven__commons_collections_commons_collections_3_2_2.xml
│ │ ├── Maven__commons_logging_commons_logging_1_2.xml
│ │ ├── Maven__org_apache_commons_commons_collections4_4_4.xml
│ │ ├── Maven__org_apache_commons_commons_lang3_3_9.xml
│ │ └── Maven__org_apache_commons_commons_text_1_7.xml
│ ├── misc.xml
│ ├── modules.xml
│ └── vcs.xml
├── .project
├── .settings
│ ├── org.eclipse.core.resources.prefs
│ ├── org.eclipse.jdt.core.prefs
│ └── org.eclipse.m2e.core.prefs
├── README.md
├── pom.xml
├── spotify-2023.csv
└── src
│ ├── challange
│ └── CsvProcessor.java
│ └── module-info.java
├── alifanza259_go
├── README.md
├── go.mod
├── main.go
└── spotify-2023.csv
├── alifanza259_js
├── .gitignore
├── README.md
├── index.js
├── package-lock.json
├── package.json
└── spotify-2023.csv
├── ankeshp03
├── index.go
└── spotify-2023.csv
├── archeana
├── script.js
└── spotify-2023.csv
├── barryhanna
├── .gitignore
├── main.js
├── package-lock.json
├── package.json
└── spotify-2023.csv
├── beneyal
├── README.md
└── SpotifyAnalysis.scala
├── christine-aqui
├── .gitignore
├── index.js
├── package-lock.json
├── package.json
└── spotify-2023.csv
├── csampedroc
├── solutions.py
└── spotify-2023.csv
├── czarjulius
├── .gitignore
├── index.js
├── jest.config.js
├── main.py
├── package-lock.json
├── package.json
├── spotify-2023.csv
├── spotifyDataAnalyzer.js
└── test
│ ├── countSongsInCSV.test.js
│ └── dummyData.csv
├── dkouela
├── .gitignore
├── README.md
├── data.csv
└── program.py
├── dotslashbit
├── main.py
└── spotify-2023.csv
├── dsauce817
├── .DS_Store
├── solution.py
└── spotify-2023.csv
├── ekady
├── index.js
├── package-lock.json
├── package.json
├── spotify-2023.csv
└── utils
│ ├── countSongsInKey.js
│ ├── countTotalSongs.js
│ └── findMostCommonValue.js
├── elciosato
├── .gitignore
├── README.md
├── data
│ └── spotify-2023.csv
├── package-lock.json
├── package.json
├── src
│ └── index.ts
└── tsconfig.json
├── fabio-oesch
└── solution.py
├── felixpherry_dart
├── .dart_tool
│ └── package_config.json
├── README.md
├── main.dart
├── pubspec.lock
├── pubspec.yaml
└── spotify-2023.csv
├── felixpherry_typescript
├── .gitignore
├── README.md
├── index.ts
├── package-lock.json
├── package.json
├── spotify-2023.csv
├── tsconfig.json
└── types.d.ts
├── ghost-2362003
├── script.py
└── spotify-2023.csv
├── grandeurkoe
├── .gitignore
├── main.py
├── requirements.txt
└── spotify-2023.csv
├── haitruong-tech
├── .gitignore
├── README.md
├── index.js
├── package-lock.json
└── package.json
├── hanisntsolo-plain-script
├── README.md
├── SpotifyDataParser.java
└── spotify-2023.csv
├── hanisntsolo
└── csv-spotify-data-logger
│ ├── .gitignore
│ ├── .mvn
│ └── wrapper
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── README.md
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ ├── src
│ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── csvspotifydatalogger
│ │ │ │ ├── CsvSpotifyDataLoggerApplication.java
│ │ │ │ ├── dataloader
│ │ │ │ └── LoadAndProcessCsv.java
│ │ │ │ ├── model
│ │ │ │ └── SpotifyTable.java
│ │ │ │ ├── repository
│ │ │ │ └── SpotifyRepository.java
│ │ │ │ └── service
│ │ │ │ └── SpotifyService.java
│ │ └── resources
│ │ │ ├── application.properties
│ │ │ └── spotify-2023.csv
│ └── test
│ │ └── java
│ │ └── com
│ │ └── example
│ │ └── csvspotifydatalogger
│ │ └── CsvSpotifyDataLoggerApplicationTests.java
│ └── target
│ ├── classes
│ ├── application.properties
│ ├── com
│ │ └── example
│ │ │ └── csvspotifydatalogger
│ │ │ ├── CsvSpotifyDataLoggerApplication.class
│ │ │ ├── dataloader
│ │ │ └── LoadAndProcessCsv.class
│ │ │ ├── model
│ │ │ └── SpotifyTable.class
│ │ │ ├── repository
│ │ │ └── SpotifyRepository.class
│ │ │ └── service
│ │ │ └── SpotifyService.class
│ └── spotify-2023.csv
│ ├── csv-spotify-data-logger-0.0.1-SNAPSHOT.jar
│ ├── csv-spotify-data-logger-0.0.1-SNAPSHOT.jar.original
│ ├── maven-archiver
│ └── pom.properties
│ ├── maven-status
│ └── maven-compiler-plugin
│ │ ├── compile
│ │ └── default-compile
│ │ │ ├── createdFiles.lst
│ │ │ └── inputFiles.lst
│ │ └── testCompile
│ │ └── default-testCompile
│ │ ├── createdFiles.lst
│ │ └── inputFiles.lst
│ ├── surefire-reports
│ ├── 2023-10-08T10-30-57_735.dumpstream
│ ├── TEST-com.example.csvspotifydatalogger.CsvSpotifyDataLoggerApplicationTests.xml
│ └── com.example.csvspotifydatalogger.CsvSpotifyDataLoggerApplicationTests.txt
│ └── test-classes
│ └── com
│ └── example
│ └── csvspotifydatalogger
│ └── CsvSpotifyDataLoggerApplicationTests.class
├── igorTT
├── .gitignore
├── index.js
├── package-lock.json
└── package.json
├── ishitva
├── .gitignore
├── index.js
├── package-lock.json
├── package.json
└── spotify-2023.csv
├── jamesxleon
├── solution.ipynb
└── spotify-2023.csv
├── jatanassian
├── .gitignore
├── index.ts
├── package-lock.json
├── package.json
└── tsconfig.json
├── jayg2309
├── Result.md
├── spotify-2023.csv
└── spotify-main.py
├── jerome-simms
├── README.md
├── SpotifyDataSolver.cpp
├── SpotifyDataSolver.h
├── main.cpp
├── rapidcsv.h
└── spotify-2023.csv
├── jgopie
├── main.go
└── spotify-2023.csv
├── josemguerra
├── .gitignore
├── index.js
├── package-lock.json
├── package.json
└── spotify-2023.csv
├── josewebdev2000
├── .gitignore
├── main.py
├── requirements.txt
└── spotify-2023.csv
├── josiah34
├── .gitignore
├── requirements.txt
├── script.py
└── spotify.ipynb
├── jsalaat
├── index.js
├── package-lock.json
└── package.json
├── kafkaidk
├── Spotify Data Logger.ipynb
└── spotify-2023.csv
├── karolwjck
├── app.py
└── spotify-2023.csv
├── khrisdaniels
├── .gitignore
├── package-lock.json
├── package.json
├── script.js
└── spotify-2023.csv
├── krrahul23
├── .gitignore
├── index.js
├── package-lock.json
├── package.json
└── spotify-2023.csv
├── kuntal0901
├── challenge.py
├── readme.md
└── spotify-2023.csv
├── l-white
├── index.js
├── package-lock.json
├── package.json
└── spotify-2023.csv
├── lucifer510
├── fileIO.py
└── spotify-2023.csv
├── lucileTech
├── index.js
├── package-lock.json
├── package.json
└── spotify-2023.csv
├── majidshakeelshawl
├── .ipynb_checkpoints
│ └── Untitled-checkpoint.ipynb
├── Untitled.ipynb
├── main.py
├── spotify-2023.csv
└── test.ipynb
├── mariapetra
├── index.py
├── new.csv
└── spotify-2023.csv
├── maxie7
├── elixir
│ ├── .formatter.exs
│ ├── .gitignore
│ ├── README.md
│ ├── lib
│ │ └── data_logger.ex
│ └── mix.exs
├── ruby
│ ├── README.md
│ └── spotify_data_logger.rb
└── typescript
│ ├── .gitignore
│ ├── README.md
│ ├── index.ts
│ ├── package-lock.json
│ ├── package.json
│ └── tsconfig.json
├── mdtausifiqbal
├── .gitignore
├── index.js
├── package-lock.json
├── package.json
└── spotify-2023.csv
├── milesjorg
├── README.md
├── solution.py
└── spotify-2023.csv
├── mishc
├── __pycache__
│ ├── analyse.cpython-311.pyc
│ ├── delete_double.cpython-311.pyc
│ └── delete_double_rows.cpython-311.pyc
├── analyse.py
├── delete_double_rows.py
├── index.py
└── spotify-2023.csv
├── mmaksi
├── index.js
├── package-lock.json
├── package.json
└── utils
│ └── csv.js
├── mohamedabomosallam
├── package-lock.json
├── package.json
├── solution.js
└── spotify-2023.csv
├── mohammadanang
├── main.go
└── spotify-2023.csv
├── mohdUsman-6508
├── SongCounter.java
└── spotify-2023.csv
├── mossi4476
├── .gitignore
├── index.js
├── package-lock.json
├── package.json
└── spotify-2023.csv
├── muhd-kifayath
├── main.py
├── requirements.txt
└── spotify-2023.csv
├── neha3423
└── index.py
├── ornitcg
├── SongCounter.class
├── SongCounter.java
└── spotify-2023.csv
├── pawaspy
├── spotify-2023.csv
└── spotify.py
├── pleomorph
├── process-music.py
└── spotify-2023.csv
├── rainbowchook
├── .gitignore
├── README.md
├── nodemon.json
├── package-lock.json
├── package.json
├── src
│ ├── index.ts
│ ├── lib
│ │ ├── ReportGenerator
│ │ │ └── ReportGenerator.ts
│ │ ├── analysers
│ │ │ ├── Analyser.ts
│ │ │ ├── ColumnValueCount.ts
│ │ │ ├── CountAnalyser.ts
│ │ │ ├── CountMaxColumnValueReporter.ts
│ │ │ └── ValuesArrayType.ts
│ │ ├── readers
│ │ │ ├── CSVFileReader.ts
│ │ │ ├── DataReader.ts
│ │ │ ├── RowItem.ts
│ │ │ └── TrackLoader.ts
│ │ ├── reporters
│ │ │ ├── ConsoleReporter.ts
│ │ │ ├── HTMLReporter.ts
│ │ │ └── Reporter.ts
│ │ └── utils.ts
│ └── spotify-2023.csv
└── tsconfig.json
├── rivka-levit
├── .gitignore
├── main.py
└── spotify-2023.csv
├── runtimeerror11
├── file.js
├── git.ignore
├── package-lock.json
├── package.json
└── spotify-2023.csv
├── samilabud
└── parse-spotify.py
├── sanusisusi
├── challenge1_script.js
├── package-lock.json
├── package.json
├── readme.md
├── spotify-2023.csv
└── spotify_analysis.py
├── skhalar_java
├── README.me
└── src
│ ├── SpotifyAnalysis.java
│ └── spotify-2023.csv
├── skhalar_rust
├── .gitignore
├── Cargo.lock
├── Cargo.toml
├── README.md
├── spotify-2023.csv
└── src
│ └── main.rs
├── skhalar_rust_no_external_crate
├── .gitignore
├── Cargo.lock
├── Cargo.toml
├── README.md
└── src
│ └── main.rs
├── smokeraven667
├── README.md
└── spoting-spotify.py
├── smolsuryansh
├── MySolution.java
├── ReadMe.md
└── spotifycsvfile.csv
├── sufyanhabib
├── .gitignore
├── index.js
├── package-lock.json
├── package.json
└── spotify-2023.csv
├── swarnendu0123
├── main.py
├── requirements.txt
└── spotify-2023.csv
├── techfreakSahil
├── Solution.class
├── Solution.java
└── spotify-2023.csv
├── timDehof
├── .gitignore
├── index.js
├── package-lock.json
├── package.json
└── spotify-2023.csv
├── vamshidhar-thonti
├── .gitignore
├── main.py
├── main.sh
└── spotify-2023.csv
├── wizbeck21
├── spotify_logger
└── usage.md
├── wizozheir-file-io
├── README.md
├── app
│ ├── build.gradle
│ └── src
│ │ └── main
│ │ ├── java
│ │ └── wizozheir
│ │ │ └── fileio
│ │ │ ├── Main.java
│ │ │ ├── Song.java
│ │ │ └── services
│ │ │ └── FileService.java
│ │ └── resources
│ │ └── spotify-2023.csv
├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
└── settings.gradle
├── yashviradia
├── main.py
├── requirements.txt
├── spotify-2023.csv
└── spotiy_data_analysis.ipynb
├── yuuxooon
├── .gitignore
├── node_modules
│ ├── .bin
│ │ ├── csv-parser
│ │ ├── csv-parser.cmd
│ │ └── csv-parser.ps1
│ ├── .package-lock.json
│ ├── csv-parser
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── bin
│ │ │ └── csv-parser
│ │ ├── index.d.ts
│ │ ├── index.js
│ │ └── package.json
│ └── minimist
│ │ ├── .eslintrc
│ │ ├── .github
│ │ └── FUNDING.yml
│ │ ├── .nycrc
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── example
│ │ └── parse.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── test
│ │ ├── all_bool.js
│ │ ├── bool.js
│ │ ├── dash.js
│ │ ├── default_bool.js
│ │ ├── dotted.js
│ │ ├── kv_short.js
│ │ ├── long.js
│ │ ├── num.js
│ │ ├── parse.js
│ │ ├── parse_modified.js
│ │ ├── proto.js
│ │ ├── short.js
│ │ ├── stop_early.js
│ │ ├── unknown.js
│ │ └── whitespace.js
├── package-lock.json
├── package.json
├── run.js
└── spotify-2023.csv
└── zli213
├── main.py
└── spotify-2023.csv
/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/.DS_Store
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .vscode/
2 | node_modules
3 | .idea
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "liveServer.settings.port": 5501
3 | }
4 |
--------------------------------------------------------------------------------
/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/.DS_Store
--------------------------------------------------------------------------------
/submissions/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
--------------------------------------------------------------------------------
/submissions/Abhishek-090/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "abhishek-090",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "author": "",
10 | "license": "ISC",
11 | "dependencies": {
12 | "fast-csv": "^4.3.6",
13 | "papaparse": "^5.4.1"
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/submissions/Abhishek-090/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/Abhishek-090/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/AldairBaku/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | **/.DS_Store
3 | *.DS_Store
4 | .DS_Store
--------------------------------------------------------------------------------
/submissions/AldairBaku/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "aldair-solution",
3 | "version": "1.0.0",
4 | "description": "Reading Spotify File",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "keywords": [
10 | "Spotify",
11 | "I/O"
12 | ],
13 | "author": "Aldair Huamani",
14 | "license": "ISC",
15 | "dependencies": {
16 | "csv-parser": "^3.0.0"
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/submissions/AndyTonks/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/AndyTonks/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/ArshDawra/spotify-parser.py:
--------------------------------------------------------------------------------
1 | import pandas as pd
2 | import matplotlib.pyplot as plt
3 |
4 | # Read csv file in pandas Dataframe
5 | data = pd.read_csv('spotify-2023.csv',encoding='latin-1')
6 |
7 | # Number of songs in csv file
8 | def number_of_songs(data):
9 | return data.shape[0]
10 |
11 | # Find the most common artists in csv file
12 | def common_artist(data):
13 | return data['artist(s)_name'].mode().tolist()
14 |
15 | # Visualize distribution of tempo in csv
16 | def vis_bpm(data):
17 | plt.hist(data['bpm'], bins=10, edgecolor='k')
18 | plt.title('BPM Distribution')
19 | plt.xlabel('BPM (Tempo)')
20 | plt.ylabel('Frequency')
21 | plt.show()
22 |
23 | print(f"The total number of songs in the playlist: {number_of_songs(data)}")
24 | print(f"The most common artists occuring in the playlist: {common_artist(data)}")
25 | vis_bpm(data)
26 |
--------------------------------------------------------------------------------
/submissions/AryanK1511/tempCodeRunnerFile.py:
--------------------------------------------------------------------------------
1 | with open(filename, "r") as file:
2 | # csv_reader = csv.reader(file)
3 | # # Skip the header row if it contains column names
4 | # header = next(csv_reader)
5 |
6 | # for row in csv_reader:
7 | # print(row)
--------------------------------------------------------------------------------
/submissions/Avinash238/main.py:
--------------------------------------------------------------------------------
1 | import pandas as pd
2 |
3 | # Load Spotify data from the CSV file
4 | df = pd.read_csv("spotify-2023.csv")
5 |
6 | # Challenge 1: Identify the number of songs in the file
7 | def get_number_of_songs(df):
8 | return len(df)
9 |
10 | # Challenge 2: Identify the number of songs in the key of E
11 | def get_number_of_songs_in_key_e(df):
12 | return len(df[df['key'] == 'E'])
13 |
14 | # Challenge 3: Count the occurrences of artist names and find the most common value
15 | def get_most_common_artist(df):
16 | return df['artist(s)_name'].mode().iloc[0]
17 |
18 | # Print the results
19 | print("Challenge 1: Total number of songs =", get_number_of_songs(df))
20 | print("Challenge 2: Number of songs in the key of E =", get_number_of_songs_in_key_e(df))
21 | print("Challenge 3: Most common artist =", get_most_common_artist(df))
22 |
--------------------------------------------------------------------------------
/submissions/Ayush-Singh/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/Ayush-Singh/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/Bltzz/.gitignore:
--------------------------------------------------------------------------------
1 | /target/
2 |
--------------------------------------------------------------------------------
/submissions/Bltzz/Haskell/.gitignore:
--------------------------------------------------------------------------------
1 | dist
2 | cabal-dev
3 | *.o
4 | *.hi
5 | *.chi
6 | *.chs.h
7 | *.dyn_o
8 | *.dyn_hi
9 | .hpc
10 | .hsenv
11 | .cabal-sandbox/
12 | cabal.sandbox.config
13 | *.prof
14 | *.aux
15 | *.hp
16 | .stack-work/
17 |
18 |
--------------------------------------------------------------------------------
/submissions/Bltzz/Haskell/Readme.md:
--------------------------------------------------------------------------------
1 | # Bltzz Solution [Haskell]
2 |
3 | ## Prereq:
4 |
5 | ```
6 | cabal update
7 | cabal install csv-conduit containers
8 | ```
9 |
10 | ## Build
11 | ```
12 | ghc solutions.hs
13 | ```
14 |
15 | ## Usage:
16 | ```
17 | solution.exe "columnNameOfChoice"
18 | ```
--------------------------------------------------------------------------------
/submissions/Bltzz/Haskell/data/spotify-clean.CSV:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/Bltzz/Haskell/data/spotify-clean.CSV
--------------------------------------------------------------------------------
/submissions/Bltzz/Haskell/solution.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/Bltzz/Haskell/solution.exe
--------------------------------------------------------------------------------
/submissions/Bltzz/Java/.gitignore:
--------------------------------------------------------------------------------
1 | /target/
2 | target/
3 | pom.xml.tag
4 | pom.xml.releaseBackup
5 | pom.xml.versionsBackup
6 | pom.xml.next
7 | release.properties
8 | dependency-reduced-pom.xml
9 | buildNumber.properties
10 | .mvn/timing.properties
11 | # https://github.com/takari/maven-wrapper#usage-without-binary-jar
12 | .mvn/wrapper/maven-wrapper.jar
13 |
14 | # Eclipse m2e generated files
15 | # Eclipse Core
16 | .project
17 | # JDT-specific (Eclipse Java Development Tools)
18 | .classpath
19 |
20 | .settings
--------------------------------------------------------------------------------
/submissions/Bltzz/Java/Analyzer.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/Bltzz/Java/Analyzer.jar
--------------------------------------------------------------------------------
/submissions/Bltzz/Java/Readme.md:
--------------------------------------------------------------------------------
1 | # Bltzz solution
2 |
3 | The implementation is a Maven Project, with an automated build.
4 |
5 | ### Build
6 | ```cmd
7 | cd /path/to/file-io/submissions/Bltzz/Java
8 | mvn clean install
9 |
10 | move target\Analyzer-jar-with-dependencies.jar Analyzer.jar
11 | ```
12 |
13 | ### Usage
14 |
15 | ```cmd
16 | cd /path/to/file-io/submissions/Bltzz
17 |
18 | java -jar Analyzer.jar --column [theNameOfTheCSVColumnYouWantToCountForSolution3]
19 |
20 | ```
21 |
22 |
--------------------------------------------------------------------------------
/submissions/Bltzz/Java/data/spotify-clean.CSV:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/Bltzz/Java/data/spotify-clean.CSV
--------------------------------------------------------------------------------
/submissions/Bltzz/Java/lib/opencsv-5.9.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/Bltzz/Java/lib/opencsv-5.9.jar
--------------------------------------------------------------------------------
/submissions/Bltzz/Ruby/Readme.md:
--------------------------------------------------------------------------------
1 | # Bltzz solution [Ruby]
2 |
3 | ### Build
4 | not needed
5 |
6 | ### Usage
7 |
8 | ```cmd
9 | cd /path/to/file-io/submissions/Bltzz/Ruby
10 |
11 | ruby solution.rb [theNameOfTheCSVColumnYouWantToCountForSolution3]
12 |
13 | ```
14 |
15 | #### Values for `theNameOfTheCSVColumnYouWantToCountForSolution3`
16 |
17 | ```
18 | track_name
19 | artist(s)_name
20 | artist_count
21 | released_year
22 | released_month
23 | released_day
24 | in_spotify_playlists
25 | in_spotify_charts
26 | streams
27 | in_apple_playlists
28 | in_apple_charts
29 | in_deezer_playlists
30 | in_deezer_charts
31 | in_shazam_charts
32 | bpm
33 | key
34 | mode
35 | danceability_%
36 | valence_%
37 | energy_%
38 | acousticness_%
39 | instrumentalness_%
40 | liveness_%
41 | speechiness_%
42 | ```
--------------------------------------------------------------------------------
/submissions/Bltzz/Ruby/data/spotify-clean.CSV:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/Bltzz/Ruby/data/spotify-clean.CSV
--------------------------------------------------------------------------------
/submissions/BlueHeart0065/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | **/.DS_Store
3 | *.DS_Store
4 | .DS_Store
--------------------------------------------------------------------------------
/submissions/BlueHeart0065/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "submissions",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "author": "Sahil Batgeri",
10 | "license": "ISC",
11 | "dependencies": {
12 | "csv-parser": "^3.0.0"
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/.bin/csv-parser:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3 |
4 | case `uname` in
5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
6 | esac
7 |
8 | if [ -x "$basedir/node" ]; then
9 | exec "$basedir/node" "$basedir/../csv-parser/bin/csv-parser" "$@"
10 | else
11 | exec node "$basedir/../csv-parser/bin/csv-parser" "$@"
12 | fi
13 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/.bin/csv-parser.cmd:
--------------------------------------------------------------------------------
1 | @ECHO off
2 | GOTO start
3 | :find_dp0
4 | SET dp0=%~dp0
5 | EXIT /b
6 | :start
7 | SETLOCAL
8 | CALL :find_dp0
9 |
10 | IF EXIST "%dp0%\node.exe" (
11 | SET "_prog=%dp0%\node.exe"
12 | ) ELSE (
13 | SET "_prog=node"
14 | SET PATHEXT=%PATHEXT:;.JS;=;%
15 | )
16 |
17 | endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\csv-parser\bin\csv-parser" %*
18 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/@fast-csv/format/build/src/CsvFormatterStream.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | import { Transform, TransformCallback } from 'stream';
3 | import { FormatterOptions } from './FormatterOptions';
4 | import { Row, RowTransformFunction } from './types';
5 | export declare class CsvFormatterStream extends Transform {
6 | private formatterOptions;
7 | private rowFormatter;
8 | private hasWrittenBOM;
9 | constructor(formatterOptions: FormatterOptions);
10 | transform(transformFunction: RowTransformFunction): CsvFormatterStream;
11 | _transform(row: I, encoding: string, cb: TransformCallback): void;
12 | _flush(cb: TransformCallback): void;
13 | }
14 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/@fast-csv/format/build/src/formatter/FieldFormatter.d.ts:
--------------------------------------------------------------------------------
1 | import { FormatterOptions } from '../FormatterOptions';
2 | import { Row } from '../types';
3 | export declare class FieldFormatter {
4 | private readonly formatterOptions;
5 | private _headers;
6 | private readonly REPLACE_REGEXP;
7 | private readonly ESCAPE_REGEXP;
8 | constructor(formatterOptions: FormatterOptions);
9 | set headers(headers: string[]);
10 | private shouldQuote;
11 | format(field: string, fieldIndex: number, isHeader: boolean): string;
12 | private quoteField;
13 | }
14 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/@fast-csv/format/build/src/formatter/index.d.ts:
--------------------------------------------------------------------------------
1 | export { RowFormatter } from './RowFormatter';
2 | export { FieldFormatter } from './FieldFormatter';
3 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/@fast-csv/format/build/src/formatter/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | Object.defineProperty(exports, "__esModule", { value: true });
3 | exports.FieldFormatter = exports.RowFormatter = void 0;
4 | var RowFormatter_1 = require("./RowFormatter");
5 | Object.defineProperty(exports, "RowFormatter", { enumerable: true, get: function () { return RowFormatter_1.RowFormatter; } });
6 | var FieldFormatter_1 = require("./FieldFormatter");
7 | Object.defineProperty(exports, "FieldFormatter", { enumerable: true, get: function () { return FieldFormatter_1.FieldFormatter; } });
8 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/@fast-csv/format/build/src/formatter/index.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/formatter/index.ts"],"names":[],"mappings":";;;AAAA,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA"}
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/@fast-csv/format/build/src/types.d.ts:
--------------------------------------------------------------------------------
1 | export declare type RowMap = Record;
2 | export declare type RowHashArray = [string, V][];
3 | export declare type RowArray = string[];
4 | export declare type Row = RowArray | RowHashArray | RowMap;
5 | export declare type RowTransformCallback = (error?: Error | null, row?: R) => void;
6 | export declare type SyncRowTransform = (row: I) => O;
7 | export declare type AsyncRowTransform = (row: I, cb: RowTransformCallback) => void;
8 | export declare type RowTransformFunction = SyncRowTransform | AsyncRowTransform;
9 | export declare const isSyncTransform: (transform: RowTransformFunction) => transform is SyncRowTransform;
10 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/@fast-csv/format/build/src/types.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | /* eslint-disable @typescript-eslint/no-explicit-any */
3 | Object.defineProperty(exports, "__esModule", { value: true });
4 | exports.isSyncTransform = void 0;
5 | exports.isSyncTransform = (transform) => transform.length === 1;
6 | //# sourceMappingURL=types.js.map
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/@fast-csv/format/build/src/types.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";AAAA,uDAAuD;;;AAY1C,QAAA,eAAe,GAAG,CAC3B,SAAqC,EACF,EAAE,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC"}
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/@fast-csv/parse/build/src/parser/Parser.d.ts:
--------------------------------------------------------------------------------
1 | import { ParserOptions } from '../ParserOptions';
2 | export interface ParseResult {
3 | line: string;
4 | rows: string[][];
5 | }
6 | export declare class Parser {
7 | private static removeBOM;
8 | private readonly parserOptions;
9 | private readonly rowParser;
10 | constructor(parserOptions: ParserOptions);
11 | parse(line: string, hasMoreData: boolean): ParseResult;
12 | private parseWithoutComments;
13 | private parseWithComments;
14 | private parseRow;
15 | }
16 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/@fast-csv/parse/build/src/parser/RowParser.d.ts:
--------------------------------------------------------------------------------
1 | import { Scanner } from './Scanner';
2 | import { ParserOptions } from '../ParserOptions';
3 | import { RowArray } from '../types';
4 | export declare class RowParser {
5 | static isEmptyRow(row: RowArray): boolean;
6 | private readonly parserOptions;
7 | private readonly columnParser;
8 | constructor(parserOptions: ParserOptions);
9 | parse(scanner: Scanner): RowArray | null;
10 | private getStartToken;
11 | private shouldSkipColumnParse;
12 | }
13 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/@fast-csv/parse/build/src/parser/column/ColumnFormatter.d.ts:
--------------------------------------------------------------------------------
1 | import { ParserOptions } from '../../ParserOptions';
2 | export declare class ColumnFormatter {
3 | readonly format: (col: string) => string;
4 | constructor(parserOptions: ParserOptions);
5 | }
6 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/@fast-csv/parse/build/src/parser/column/ColumnFormatter.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | Object.defineProperty(exports, "__esModule", { value: true });
3 | exports.ColumnFormatter = void 0;
4 | class ColumnFormatter {
5 | constructor(parserOptions) {
6 | if (parserOptions.trim) {
7 | this.format = (col) => col.trim();
8 | }
9 | else if (parserOptions.ltrim) {
10 | this.format = (col) => col.trimLeft();
11 | }
12 | else if (parserOptions.rtrim) {
13 | this.format = (col) => col.trimRight();
14 | }
15 | else {
16 | this.format = (col) => col;
17 | }
18 | }
19 | }
20 | exports.ColumnFormatter = ColumnFormatter;
21 | //# sourceMappingURL=ColumnFormatter.js.map
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/@fast-csv/parse/build/src/parser/column/ColumnFormatter.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"ColumnFormatter.js","sourceRoot":"","sources":["../../../../src/parser/column/ColumnFormatter.ts"],"names":[],"mappings":";;;AAEA,MAAa,eAAe;IAGxB,YAAmB,aAA4B;QAC3C,IAAI,aAAa,CAAC,IAAI,EAAE;YACpB,IAAI,CAAC,MAAM,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;SACrD;aAAM,IAAI,aAAa,CAAC,KAAK,EAAE;YAC5B,IAAI,CAAC,MAAM,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;SACzD;aAAM,IAAI,aAAa,CAAC,KAAK,EAAE;YAC5B,IAAI,CAAC,MAAM,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;SAC1D;aAAM;YACH,IAAI,CAAC,MAAM,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,GAAG,CAAC;SAC9C;IACL,CAAC;CACJ;AAdD,0CAcC"}
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/@fast-csv/parse/build/src/parser/column/ColumnParser.d.ts:
--------------------------------------------------------------------------------
1 | import { ParserOptions } from '../../ParserOptions';
2 | import { NonQuotedColumnParser } from './NonQuotedColumnParser';
3 | import { QuotedColumnParser } from './QuotedColumnParser';
4 | import { Scanner } from '../Scanner';
5 | export declare class ColumnParser {
6 | private readonly parserOptions;
7 | readonly nonQuotedColumnParser: NonQuotedColumnParser;
8 | readonly quotedColumnParser: QuotedColumnParser;
9 | constructor(parserOptions: ParserOptions);
10 | parse(scanner: Scanner): string | null;
11 | }
12 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/@fast-csv/parse/build/src/parser/column/ColumnParser.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"ColumnParser.js","sourceRoot":"","sources":["../../../../src/parser/column/ColumnParser.ts"],"names":[],"mappings":";;;AACA,mEAAgE;AAChE,6DAA0D;AAE1D,oCAAiC;AAEjC,MAAa,YAAY;IAOrB,YAAmB,aAA4B;QAC3C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,kBAAkB,GAAG,IAAI,uCAAkB,CAAC,aAAa,CAAC,CAAC;QAChE,IAAI,CAAC,qBAAqB,GAAG,IAAI,6CAAqB,CAAC,aAAa,CAAC,CAAC;IAC1E,CAAC;IAEM,KAAK,CAAC,OAAgB;QACzB,MAAM,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC;QACtC,IAAI,iBAAiB,KAAK,IAAI,IAAI,aAAK,CAAC,YAAY,CAAC,iBAAiB,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE;YACzF,OAAO,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SACjD;QACD,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;CACJ;AArBD,oCAqBC"}
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/@fast-csv/parse/build/src/parser/column/NonQuotedColumnParser.d.ts:
--------------------------------------------------------------------------------
1 | import { ParserOptions } from '../../ParserOptions';
2 | import { Scanner } from '../Scanner';
3 | export declare class NonQuotedColumnParser {
4 | private readonly parserOptions;
5 | private readonly columnFormatter;
6 | constructor(parserOptions: ParserOptions);
7 | parse(scanner: Scanner): string | null;
8 | }
9 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/@fast-csv/parse/build/src/parser/column/QuotedColumnParser.d.ts:
--------------------------------------------------------------------------------
1 | import { ParserOptions } from '../../ParserOptions';
2 | import { Scanner } from '../Scanner';
3 | export declare class QuotedColumnParser {
4 | private readonly parserOptions;
5 | private readonly columnFormatter;
6 | constructor(parserOptions: ParserOptions);
7 | parse(scanner: Scanner): string | null;
8 | private gatherDataBetweenQuotes;
9 | private checkForMalformedColumn;
10 | }
11 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/@fast-csv/parse/build/src/parser/column/index.d.ts:
--------------------------------------------------------------------------------
1 | export { ColumnParser } from './ColumnParser';
2 | export { NonQuotedColumnParser } from './NonQuotedColumnParser';
3 | export { QuotedColumnParser } from './QuotedColumnParser';
4 | export { ColumnFormatter } from './ColumnFormatter';
5 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/@fast-csv/parse/build/src/parser/column/index.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/parser/column/index.ts"],"names":[],"mappings":";;;AAAA,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,iEAAgE;AAAvD,8HAAA,qBAAqB,OAAA;AAC9B,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA;AAC3B,qDAAoD;AAA3C,kHAAA,eAAe,OAAA"}
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/@fast-csv/parse/build/src/parser/index.d.ts:
--------------------------------------------------------------------------------
1 | export { Parser } from './Parser';
2 | export { RowParser } from './RowParser';
3 | export { Scanner } from './Scanner';
4 | export { Token, MaybeToken } from './Token';
5 | export { ColumnParser, NonQuotedColumnParser, QuotedColumnParser } from './column';
6 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/@fast-csv/parse/build/src/parser/index.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/parser/index.ts"],"names":[],"mappings":";;;AAAA,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AACf,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,iCAA4C;AAAnC,8FAAA,KAAK,OAAA;AACd,mCAAmF;AAA1E,sGAAA,YAAY,OAAA;AAAE,+GAAA,qBAAqB,OAAA;AAAE,4GAAA,kBAAkB,OAAA"}
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/@fast-csv/parse/build/src/transforms/HeaderTransformer.d.ts:
--------------------------------------------------------------------------------
1 | import { ParserOptions } from '../ParserOptions';
2 | import { HeaderArray, Row, RowArray, RowValidatorCallback } from '../types';
3 | export declare class HeaderTransformer {
4 | private readonly parserOptions;
5 | headers: HeaderArray | null;
6 | private receivedHeaders;
7 | private readonly shouldUseFirstRow;
8 | private processedFirstRow;
9 | private headersLength;
10 | private readonly headersTransform?;
11 | constructor(parserOptions: ParserOptions);
12 | transform(row: RowArray, cb: RowValidatorCallback): void;
13 | private shouldMapRow;
14 | private processRow;
15 | private mapHeaders;
16 | private setHeaders;
17 | }
18 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/@fast-csv/parse/build/src/transforms/RowTransformerValidator.d.ts:
--------------------------------------------------------------------------------
1 | import { Row, RowTransformFunction, RowValidatorCallback, RowValidate } from '../types';
2 | export declare class RowTransformerValidator {
3 | private static createTransform;
4 | private static createValidator;
5 | private _rowTransform;
6 | private _rowValidator;
7 | set rowTransform(transformFunction: RowTransformFunction);
8 | set rowValidator(validateFunction: RowValidate);
9 | transformAndValidate(row: I, cb: RowValidatorCallback): void;
10 | private callTransformer;
11 | private callValidator;
12 | }
13 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/@fast-csv/parse/build/src/transforms/index.d.ts:
--------------------------------------------------------------------------------
1 | export { RowTransformerValidator } from './RowTransformerValidator';
2 | export { HeaderTransformer } from './HeaderTransformer';
3 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/@fast-csv/parse/build/src/transforms/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | Object.defineProperty(exports, "__esModule", { value: true });
3 | exports.HeaderTransformer = exports.RowTransformerValidator = void 0;
4 | var RowTransformerValidator_1 = require("./RowTransformerValidator");
5 | Object.defineProperty(exports, "RowTransformerValidator", { enumerable: true, get: function () { return RowTransformerValidator_1.RowTransformerValidator; } });
6 | var HeaderTransformer_1 = require("./HeaderTransformer");
7 | Object.defineProperty(exports, "HeaderTransformer", { enumerable: true, get: function () { return HeaderTransformer_1.HeaderTransformer; } });
8 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/@fast-csv/parse/build/src/transforms/index.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transforms/index.ts"],"names":[],"mappings":";;;AAAA,qEAAoE;AAA3D,kIAAA,uBAAuB,OAAA;AAChC,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA"}
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/@fast-csv/parse/build/src/types.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | Object.defineProperty(exports, "__esModule", { value: true });
3 | exports.isSyncValidate = exports.isSyncTransform = void 0;
4 | exports.isSyncTransform = (transform) => transform.length === 1;
5 | exports.isSyncValidate = (validate) => validate.length === 1;
6 | //# sourceMappingURL=types.js.map
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/@fast-csv/parse/build/src/types.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAoBa,QAAA,eAAe,GAAG,CAC3B,SAAqC,EACF,EAAE,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC;AAQpD,QAAA,cAAc,GAAG,CAAgB,QAAwB,EAAkC,EAAE,CACtG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC"}
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/@types/node/constants.d.ts:
--------------------------------------------------------------------------------
1 | /** @deprecated since v6.3.0 - use constants property exposed by the relevant module instead. */
2 | declare module "constants" {
3 | import { constants as osConstants, SignalConstants } from "os";
4 | import { constants as cryptoConstants } from "crypto";
5 | import { constants as fsConstants } from "fs";
6 |
7 | const exp:
8 | & typeof osConstants.errno
9 | & typeof osConstants.priority
10 | & SignalConstants
11 | & typeof cryptoConstants
12 | & typeof fsConstants;
13 | export = exp;
14 | }
15 |
16 | declare module "node:constants" {
17 | import constants = require("constants");
18 | export = constants;
19 | }
20 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/@types/node/globals.global.d.ts:
--------------------------------------------------------------------------------
1 | declare var global: NodeJS.Global & typeof globalThis;
2 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/@types/node/string_decoder.d.ts:
--------------------------------------------------------------------------------
1 | declare module "string_decoder" {
2 | class StringDecoder {
3 | constructor(encoding?: BufferEncoding);
4 | write(buffer: Buffer): string;
5 | end(buffer?: Buffer): string;
6 | }
7 | }
8 | declare module "node:string_decoder" {
9 | export * from "string_decoder";
10 | }
11 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/@types/node/ts4.8/constants.d.ts:
--------------------------------------------------------------------------------
1 | /** @deprecated since v6.3.0 - use constants property exposed by the relevant module instead. */
2 | declare module "constants" {
3 | import { constants as osConstants, SignalConstants } from "os";
4 | import { constants as cryptoConstants } from "crypto";
5 | import { constants as fsConstants } from "fs";
6 |
7 | const exp:
8 | & typeof osConstants.errno
9 | & typeof osConstants.priority
10 | & SignalConstants
11 | & typeof cryptoConstants
12 | & typeof fsConstants;
13 | export = exp;
14 | }
15 |
16 | declare module "node:constants" {
17 | import constants = require("constants");
18 | export = constants;
19 | }
20 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/@types/node/ts4.8/globals.global.d.ts:
--------------------------------------------------------------------------------
1 | declare var global: NodeJS.Global & typeof globalThis;
2 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/@types/node/ts4.8/string_decoder.d.ts:
--------------------------------------------------------------------------------
1 | declare module "string_decoder" {
2 | class StringDecoder {
3 | constructor(encoding?: BufferEncoding);
4 | write(buffer: Buffer): string;
5 | end(buffer?: Buffer): string;
6 | }
7 | }
8 | declare module "node:string_decoder" {
9 | export * from "string_decoder";
10 | }
11 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/fast-csv/build/src/index.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,2CAgB0B;AAftB,gGAAA,MAAM,OAAA;AACN,+FAAA,KAAK,OAAA;AACL,uGAAA,aAAa,OAAA;AACb,uGAAA,aAAa,OAAA;AACb,uGAAA,aAAa,OAAA;AACb,qGAAA,WAAW,OAAA;AACX,4GAAA,kBAAkB,OAAA;AAClB,0GAAA,gBAAgB,OAAA;AAUpB,yCAqByB;AApBrB,8FAAA,KAAK,OAAA;AACL,oGAAA,WAAW,OAAA;AACX,oGAAA,WAAW,OAAA;AACX,kGAAA,SAAS,OAAA;AACT,sGAAA,aAAa,OAAA;AACb,wGAAA,eAAe,OAAA"}
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/lodash.escaperegexp/README.md:
--------------------------------------------------------------------------------
1 | # lodash.escaperegexp v4.1.2
2 |
3 | The [lodash](https://lodash.com/) method `_.escapeRegExp` exported as a [Node.js](https://nodejs.org/) module.
4 |
5 | ## Installation
6 |
7 | Using npm:
8 | ```bash
9 | $ {sudo -H} npm i -g npm
10 | $ npm i --save lodash.escaperegexp
11 | ```
12 |
13 | In Node.js:
14 | ```js
15 | var escapeRegExp = require('lodash.escaperegexp');
16 | ```
17 |
18 | See the [documentation](https://lodash.com/docs#escapeRegExp) or [package source](https://github.com/lodash/lodash/blob/4.1.2-npm-packages/lodash.escaperegexp) for more details.
19 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/lodash.groupby/README.md:
--------------------------------------------------------------------------------
1 | # lodash.groupby v4.6.0
2 |
3 | The [lodash](https://lodash.com/) method `_.groupBy` exported as a [Node.js](https://nodejs.org/) module.
4 |
5 | ## Installation
6 |
7 | Using npm:
8 | ```bash
9 | $ {sudo -H} npm i -g npm
10 | $ npm i --save lodash.groupby
11 | ```
12 |
13 | In Node.js:
14 | ```js
15 | var groupBy = require('lodash.groupby');
16 | ```
17 |
18 | See the [documentation](https://lodash.com/docs#groupBy) or [package source](https://github.com/lodash/lodash/blob/4.6.0-npm-packages/lodash.groupby) for more details.
19 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/lodash.groupby/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "lodash.groupby",
3 | "version": "4.6.0",
4 | "description": "The lodash method `_.groupBy` exported as a module.",
5 | "homepage": "https://lodash.com/",
6 | "icon": "https://lodash.com/icon.svg",
7 | "license": "MIT",
8 | "keywords": "lodash-modularized, groupby",
9 | "author": "John-David Dalton (http://allyoucanleet.com/)",
10 | "contributors": [
11 | "John-David Dalton (http://allyoucanleet.com/)",
12 | "Blaine Bublitz (https://github.com/phated)",
13 | "Mathias Bynens (https://mathiasbynens.be/)"
14 | ],
15 | "repository": "lodash/lodash",
16 | "scripts": { "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" }
17 | }
18 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/lodash.isboolean/README.md:
--------------------------------------------------------------------------------
1 | # lodash.isboolean v3.0.3
2 |
3 | The [lodash](https://lodash.com/) method `_.isBoolean` exported as a [Node.js](https://nodejs.org/) module.
4 |
5 | ## Installation
6 |
7 | Using npm:
8 | ```bash
9 | $ {sudo -H} npm i -g npm
10 | $ npm i --save lodash.isboolean
11 | ```
12 |
13 | In Node.js:
14 | ```js
15 | var isBoolean = require('lodash.isboolean');
16 | ```
17 |
18 | See the [documentation](https://lodash.com/docs#isBoolean) or [package source](https://github.com/lodash/lodash/blob/3.0.3-npm-packages/lodash.isboolean) for more details.
19 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/lodash.isboolean/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "lodash.isboolean",
3 | "version": "3.0.3",
4 | "description": "The lodash method `_.isBoolean` exported as a module.",
5 | "homepage": "https://lodash.com/",
6 | "icon": "https://lodash.com/icon.svg",
7 | "license": "MIT",
8 | "keywords": "lodash-modularized, isboolean",
9 | "author": "John-David Dalton (http://allyoucanleet.com/)",
10 | "contributors": [
11 | "John-David Dalton (http://allyoucanleet.com/)",
12 | "Blaine Bublitz (https://github.com/phated)",
13 | "Mathias Bynens (https://mathiasbynens.be/)"
14 | ],
15 | "repository": "lodash/lodash",
16 | "scripts": { "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" }
17 | }
18 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/lodash.isequal/README.md:
--------------------------------------------------------------------------------
1 | # lodash.isequal v4.5.0
2 |
3 | The [Lodash](https://lodash.com/) method `_.isEqual` exported as a [Node.js](https://nodejs.org/) module.
4 |
5 | ## Installation
6 |
7 | Using npm:
8 | ```bash
9 | $ {sudo -H} npm i -g npm
10 | $ npm i --save lodash.isequal
11 | ```
12 |
13 | In Node.js:
14 | ```js
15 | var isEqual = require('lodash.isequal');
16 | ```
17 |
18 | See the [documentation](https://lodash.com/docs#isEqual) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.isequal) for more details.
19 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/lodash.isequal/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "lodash.isequal",
3 | "version": "4.5.0",
4 | "description": "The Lodash method `_.isEqual` exported as a module.",
5 | "homepage": "https://lodash.com/",
6 | "icon": "https://lodash.com/icon.svg",
7 | "license": "MIT",
8 | "keywords": "lodash-modularized, isequal",
9 | "author": "John-David Dalton (http://allyoucanleet.com/)",
10 | "contributors": [
11 | "John-David Dalton (http://allyoucanleet.com/)",
12 | "Mathias Bynens (https://mathiasbynens.be/)"
13 | ],
14 | "repository": "lodash/lodash",
15 | "scripts": { "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" }
16 | }
17 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/lodash.isfunction/README.md:
--------------------------------------------------------------------------------
1 | # lodash.isfunction v3.0.9
2 |
3 | The [Lodash](https://lodash.com/) method `_.isFunction` exported as a [Node.js](https://nodejs.org/) module.
4 |
5 | ## Installation
6 |
7 | Using npm:
8 | ```bash
9 | $ {sudo -H} npm i -g npm
10 | $ npm i --save lodash.isfunction
11 | ```
12 |
13 | In Node.js:
14 | ```js
15 | var isFunction = require('lodash.isfunction');
16 | ```
17 |
18 | See the [documentation](https://lodash.com/docs#isFunction) or [package source](https://github.com/lodash/lodash/blob/3.0.9-npm-packages/lodash.isfunction) for more details.
19 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/lodash.isfunction/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "lodash.isfunction",
3 | "version": "3.0.9",
4 | "description": "The Lodash method `_.isFunction` exported as a module.",
5 | "homepage": "https://lodash.com/",
6 | "icon": "https://lodash.com/icon.svg",
7 | "license": "MIT",
8 | "keywords": "lodash-modularized, isfunction",
9 | "author": "John-David Dalton (http://allyoucanleet.com/)",
10 | "contributors": [
11 | "John-David Dalton (http://allyoucanleet.com/)",
12 | "Mathias Bynens (https://mathiasbynens.be/)"
13 | ],
14 | "repository": "lodash/lodash",
15 | "scripts": { "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" }
16 | }
17 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/lodash.isnil/README.md:
--------------------------------------------------------------------------------
1 | # lodash.isnil v4.0.0
2 |
3 | The [lodash](https://lodash.com/) method `_.isNil` exported as a [Node.js](https://nodejs.org/) module.
4 |
5 | ## Installation
6 |
7 | Using npm:
8 | ```bash
9 | $ {sudo -H} npm i -g npm
10 | $ npm i --save lodash.isnil
11 | ```
12 |
13 | In Node.js:
14 | ```js
15 | var isNil = require('lodash.isnil');
16 | ```
17 |
18 | See the [documentation](https://lodash.com/docs#isNil) or [package source](https://github.com/lodash/lodash/blob/4.0.0-npm-packages/lodash.isnil) for more details.
19 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/lodash.isnil/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "lodash.isnil",
3 | "version": "4.0.0",
4 | "description": "The lodash method `_.isNil` exported as a module.",
5 | "homepage": "https://lodash.com/",
6 | "icon": "https://lodash.com/icon.svg",
7 | "license": "MIT",
8 | "keywords": "lodash, lodash-modularized, stdlib, util, isnil",
9 | "author": "John-David Dalton (http://allyoucanleet.com/)",
10 | "contributors": [
11 | "John-David Dalton (http://allyoucanleet.com/)",
12 | "Blaine Bublitz (https://github.com/phated)",
13 | "Mathias Bynens (https://mathiasbynens.be/)"
14 | ],
15 | "repository": "lodash/lodash",
16 | "scripts": { "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" }
17 | }
18 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/lodash.isundefined/README.md:
--------------------------------------------------------------------------------
1 | # lodash.isundefined v3.0.1
2 |
3 | The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) `_.isUndefined` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module.
4 |
5 | ## Installation
6 |
7 | Using npm:
8 |
9 | ```bash
10 | $ {sudo -H} npm i -g npm
11 | $ npm i --save lodash.isundefined
12 | ```
13 |
14 | In Node.js/io.js:
15 |
16 | ```js
17 | var isUndefined = require('lodash.isundefined');
18 | ```
19 |
20 | See the [documentation](https://lodash.com/docs#isUndefined) or [package source](https://github.com/lodash/lodash/blob/3.0.1-npm-packages/lodash.isundefined) for more details.
21 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/lodash.uniq/README.md:
--------------------------------------------------------------------------------
1 | # lodash.uniq v4.5.0
2 |
3 | The [lodash](https://lodash.com/) method `_.uniq` exported as a [Node.js](https://nodejs.org/) module.
4 |
5 | ## Installation
6 |
7 | Using npm:
8 | ```bash
9 | $ {sudo -H} npm i -g npm
10 | $ npm i --save lodash.uniq
11 | ```
12 |
13 | In Node.js:
14 | ```js
15 | var uniq = require('lodash.uniq');
16 | ```
17 |
18 | See the [documentation](https://lodash.com/docs#uniq) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.uniq) for more details.
19 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/lodash.uniq/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "lodash.uniq",
3 | "version": "4.5.0",
4 | "description": "The lodash method `_.uniq` exported as a module.",
5 | "homepage": "https://lodash.com/",
6 | "icon": "https://lodash.com/icon.svg",
7 | "license": "MIT",
8 | "keywords": "lodash-modularized, uniq",
9 | "author": "John-David Dalton (http://allyoucanleet.com/)",
10 | "contributors": [
11 | "John-David Dalton (http://allyoucanleet.com/)",
12 | "Blaine Bublitz (https://github.com/phated)",
13 | "Mathias Bynens (https://mathiasbynens.be/)"
14 | ],
15 | "repository": "lodash/lodash",
16 | "scripts": { "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" }
17 | }
18 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/minimist/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "root": true,
3 |
4 | "extends": "@ljharb/eslint-config/node/0.4",
5 |
6 | "rules": {
7 | "array-element-newline": 0,
8 | "complexity": 0,
9 | "func-style": [2, "declaration"],
10 | "max-lines-per-function": 0,
11 | "max-nested-callbacks": 1,
12 | "max-statements-per-line": 1,
13 | "max-statements": 0,
14 | "multiline-comment-style": 0,
15 | "no-continue": 1,
16 | "no-param-reassign": 1,
17 | "no-restricted-syntax": 1,
18 | "object-curly-newline": 0,
19 | },
20 |
21 | "overrides": [
22 | {
23 | "files": "test/**",
24 | "rules": {
25 | "camelcase": 0,
26 | },
27 | },
28 | ]
29 | }
30 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/minimist/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github: [ljharb]
4 | patreon: # Replace with a single Patreon username
5 | open_collective: # Replace with a single Open Collective username
6 | ko_fi: # Replace with a single Ko-fi username
7 | tidelift: npm/minimist
8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9 | liberapay: # Replace with a single Liberapay username
10 | issuehunt: # Replace with a single IssueHunt username
11 | otechie: # Replace with a single Otechie username
12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
13 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/minimist/.nycrc:
--------------------------------------------------------------------------------
1 | {
2 | "all": true,
3 | "check-coverage": false,
4 | "reporter": ["text-summary", "text", "html", "json"],
5 | "lines": 86,
6 | "statements": 85.93,
7 | "functions": 82.43,
8 | "branches": 76.06,
9 | "exclude": [
10 | "coverage",
11 | "example",
12 | "test"
13 | ]
14 | }
15 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/minimist/example/parse.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var argv = require('../')(process.argv.slice(2));
4 | console.log(argv);
5 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/minimist/test/all_bool.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var parse = require('../');
4 | var test = require('tape');
5 |
6 | test('flag boolean true (default all --args to boolean)', function (t) {
7 | var argv = parse(['moo', '--honk', 'cow'], {
8 | boolean: true,
9 | });
10 |
11 | t.deepEqual(argv, {
12 | honk: true,
13 | _: ['moo', 'cow'],
14 | });
15 |
16 | t.deepEqual(typeof argv.honk, 'boolean');
17 | t.end();
18 | });
19 |
20 | test('flag boolean true only affects double hyphen arguments without equals signs', function (t) {
21 | var argv = parse(['moo', '--honk', 'cow', '-p', '55', '--tacos=good'], {
22 | boolean: true,
23 | });
24 |
25 | t.deepEqual(argv, {
26 | honk: true,
27 | tacos: 'good',
28 | p: 55,
29 | _: ['moo', 'cow'],
30 | });
31 |
32 | t.deepEqual(typeof argv.honk, 'boolean');
33 | t.end();
34 | });
35 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/minimist/test/dotted.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var parse = require('../');
4 | var test = require('tape');
5 |
6 | test('dotted alias', function (t) {
7 | var argv = parse(['--a.b', '22'], { default: { 'a.b': 11 }, alias: { 'a.b': 'aa.bb' } });
8 | t.equal(argv.a.b, 22);
9 | t.equal(argv.aa.bb, 22);
10 | t.end();
11 | });
12 |
13 | test('dotted default', function (t) {
14 | var argv = parse('', { default: { 'a.b': 11 }, alias: { 'a.b': 'aa.bb' } });
15 | t.equal(argv.a.b, 11);
16 | t.equal(argv.aa.bb, 11);
17 | t.end();
18 | });
19 |
20 | test('dotted default with no alias', function (t) {
21 | var argv = parse('', { default: { 'a.b': 11 } });
22 | t.equal(argv.a.b, 11);
23 | t.end();
24 | });
25 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/minimist/test/kv_short.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var parse = require('../');
4 | var test = require('tape');
5 |
6 | test('short -k=v', function (t) {
7 | t.plan(1);
8 |
9 | var argv = parse(['-b=123']);
10 | t.deepEqual(argv, { b: 123, _: [] });
11 | });
12 |
13 | test('multi short -k=v', function (t) {
14 | t.plan(1);
15 |
16 | var argv = parse(['-a=whatever', '-b=robots']);
17 | t.deepEqual(argv, { a: 'whatever', b: 'robots', _: [] });
18 | });
19 |
20 | test('short with embedded equals -k=a=b', function (t) {
21 | t.plan(1);
22 |
23 | var argv = parse(['-k=a=b']);
24 | t.deepEqual(argv, { k: 'a=b', _: [] });
25 | });
26 |
27 | test('short with later equals like -ab=c', function (t) {
28 | t.plan(1);
29 |
30 | var argv = parse(['-ab=c']);
31 | t.deepEqual(argv, { a: true, b: 'c', _: [] });
32 | });
33 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/minimist/test/long.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var test = require('tape');
4 | var parse = require('../');
5 |
6 | test('long opts', function (t) {
7 | t.deepEqual(
8 | parse(['--bool']),
9 | { bool: true, _: [] },
10 | 'long boolean'
11 | );
12 | t.deepEqual(
13 | parse(['--pow', 'xixxle']),
14 | { pow: 'xixxle', _: [] },
15 | 'long capture sp'
16 | );
17 | t.deepEqual(
18 | parse(['--pow=xixxle']),
19 | { pow: 'xixxle', _: [] },
20 | 'long capture eq'
21 | );
22 | t.deepEqual(
23 | parse(['--host', 'localhost', '--port', '555']),
24 | { host: 'localhost', port: 555, _: [] },
25 | 'long captures sp'
26 | );
27 | t.deepEqual(
28 | parse(['--host=localhost', '--port=555']),
29 | { host: 'localhost', port: 555, _: [] },
30 | 'long captures eq'
31 | );
32 | t.end();
33 | });
34 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/minimist/test/parse_modified.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var parse = require('../');
4 | var test = require('tape');
5 |
6 | test('parse with modifier functions', function (t) {
7 | t.plan(1);
8 |
9 | var argv = parse(['-b', '123'], { boolean: 'b' });
10 | t.deepEqual(argv, { b: true, _: [123] });
11 | });
12 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/minimist/test/stop_early.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var parse = require('../');
4 | var test = require('tape');
5 |
6 | test('stops parsing on the first non-option when stopEarly is set', function (t) {
7 | var argv = parse(['--aaa', 'bbb', 'ccc', '--ddd'], {
8 | stopEarly: true,
9 | });
10 |
11 | t.deepEqual(argv, {
12 | aaa: 'bbb',
13 | _: ['ccc', '--ddd'],
14 | });
15 |
16 | t.end();
17 | });
18 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/node_modules/minimist/test/whitespace.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var parse = require('../');
4 | var test = require('tape');
5 |
6 | test('whitespace should be whitespace', function (t) {
7 | t.plan(1);
8 | var x = parse(['-x', '\t']).x;
9 | t.equal(x, '\t');
10 | });
11 |
--------------------------------------------------------------------------------
/submissions/BlueHeartSecond/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "blueheartsecond",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "author": "",
10 | "license": "ISC",
11 | "dependencies": {
12 | "csv-parser": "^3.0.0",
13 | "fast-csv": "^4.3.6"
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/submissions/DOSDX19/requirements.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/DOSDX19/requirements.txt
--------------------------------------------------------------------------------
/submissions/Daniel-Badura/.gitignore:
--------------------------------------------------------------------------------
1 | # Python-related
2 | __pycache__/
3 | *.pyc
4 | *.pyo
5 | __pycache__/
6 | *.pyc
7 | *.pyo
8 | *.pyd
9 | __pycache__/
10 | *.pyc
11 | *.pyo
12 | *.pyd
13 | __pycache__/
14 | *.pyc
15 | *.pyo
16 | *.pyd
17 | *.egg-info/
18 | dist/
19 | build/
20 | *.egg
21 | *.egg-info
22 | *.egg-info/
23 | MANIFEST
24 |
25 | # Virtual Environment
26 | venv/
27 | env/
28 | ENV/
29 |
30 | # Editor-specific
31 | .vscode/
32 | .idea/
33 |
34 | # Dependency directories
35 | node_modules/
36 | jspm_packages/
37 | bower_components/
38 |
39 | # Compiled binary extensions
40 | *.dll
41 | *.dylib
42 | *.so
43 |
44 | # macOS
45 | .DS_Store
46 |
47 | # Windows
48 | Thumbs.db
49 | ehthumbs.db
50 |
51 | # Jupyter Notebook
52 | .ipynb_checkpoints/
53 |
--------------------------------------------------------------------------------
/submissions/Daniel-Badura/modules/count_songs.py:
--------------------------------------------------------------------------------
1 | import csv
2 |
3 | def count_songs(path):
4 | try:
5 | with open(path, "r", newline="") as csv_file:
6 | csv_reader = csv.reader(csv_file)
7 | next(csv_reader)
8 | song_counter = 0
9 |
10 | for row in csv_reader:
11 | song_counter += 1
12 |
13 | return song_counter
14 |
15 | except FileNotFoundError:
16 | return -404
17 | except Exception:
18 | return -400
--------------------------------------------------------------------------------
/submissions/Daniel-Badura/modules/count_songs_key.py:
--------------------------------------------------------------------------------
1 | import csv
2 |
3 |
4 | def count_songs_key(csv_file, key_column, key_value):
5 | try:
6 | with open(csv_file, 'r', newline='', encoding='utf-8') as file:
7 | csv_reader = csv.reader(file)
8 | header_row = next(csv_reader)
9 |
10 | if key_column not in header_row:
11 | print(f"Error: '{key_column}' column not found in the CSV header.")
12 | return 0
13 |
14 | key_index = header_row.index(key_column)
15 | key_count = 0
16 |
17 | for row in csv_reader:
18 | if key_index < len(row):
19 | if row[key_index] == key_value:
20 | key_count += 1
21 |
22 | return key_count
23 | except FileNotFoundError:
24 | return 0
--------------------------------------------------------------------------------
/submissions/Dhairya-A-Mehra/Result.md:
--------------------------------------------------------------------------------
1 | Total number of songs in the file: 953
2 | Number of songs in the key of E: 62
3 | Most common artist name: Taylor Swift
--------------------------------------------------------------------------------
/submissions/Dhairya-A-Mehra/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/Dhairya-A-Mehra/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/Dhanveeryadav/README.md:
--------------------------------------------------------------------------------
1 | # Instructions
2 |
3 | open the terminal Change into the directory.
4 |
5 | assuming you are in the parent directory (file-io).
6 |
7 | `cd submissions/Dhanveeryadav`
8 |
9 | ## installs the packages
10 |
11 | `pip install -r requirements.txt`
12 |
13 | then run the jupyter cells to see the outputs.
--------------------------------------------------------------------------------
/submissions/Dhanveeryadav/requirements.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/Dhanveeryadav/requirements.txt
--------------------------------------------------------------------------------
/submissions/E-foster/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
--------------------------------------------------------------------------------
/submissions/E-foster/node_modules/.package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "e-foster",
3 | "version": "1.0.0",
4 | "lockfileVersion": 3,
5 | "requires": true,
6 | "packages": {
7 | "node_modules/csv-parse": {
8 | "version": "5.5.0",
9 | "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-5.5.0.tgz",
10 | "integrity": "sha512-RxruSK3M4XgzcD7Trm2wEN+SJ26ChIb903+IWxNOcB5q4jT2Cs+hFr6QP39J05EohshRFEvyzEBoZ/466S2sbw=="
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/submissions/E-foster/node_modules/csv-parse/dist/cjs/sync.d.cts:
--------------------------------------------------------------------------------
1 |
2 | import { Options } from './index.cjs';
3 |
4 | declare function parse(input: Buffer | string, options?: Options): any;
5 | // export default parse;
6 | export { parse };
7 |
8 | export {
9 | CastingContext, CastingFunction, CastingDateFunction,
10 | ColumnOption, Options, Info, CsvErrorCode, CsvError
11 | } from './index.cjs';
12 |
--------------------------------------------------------------------------------
/submissions/E-foster/node_modules/csv-parse/dist/esm/sync.d.ts:
--------------------------------------------------------------------------------
1 |
2 | import { Options } from './index.js';
3 |
4 | declare function parse(input: Buffer | string, options?: Options): any;
5 | // export default parse;
6 | export { parse };
7 |
8 | export {
9 | CastingContext, CastingFunction, CastingDateFunction,
10 | ColumnOption, Options, Info, CsvErrorCode, CsvError
11 | } from './index.js';
12 |
--------------------------------------------------------------------------------
/submissions/E-foster/node_modules/csv-parse/lib/api/CsvError.js:
--------------------------------------------------------------------------------
1 |
2 | class CsvError extends Error {
3 | constructor(code, message, options, ...contexts) {
4 | if(Array.isArray(message)) message = message.join(' ').trim();
5 | super(message);
6 | if(Error.captureStackTrace !== undefined){
7 | Error.captureStackTrace(this, CsvError);
8 | }
9 | this.code = code;
10 | for(const context of contexts){
11 | for(const key in context){
12 | const value = context[key];
13 | this[key] = Buffer.isBuffer(value) ? value.toString(options.encoding) : value == null ? value : JSON.parse(JSON.stringify(value));
14 | }
15 | }
16 | }
17 | }
18 |
19 | export {CsvError};
20 |
--------------------------------------------------------------------------------
/submissions/E-foster/node_modules/csv-parse/lib/stream.js:
--------------------------------------------------------------------------------
1 |
2 | import {
3 | TransformStream,
4 | } from 'node:stream/web';
5 | import {transform} from './api/index.js';
6 |
7 | const parse = (opts) => {
8 | const api = transform(opts);
9 | return new TransformStream({
10 | async transform(chunk, controller) {
11 | api.parse(chunk, false, (record) => {
12 | controller.enqueue(record);
13 | }, () => {
14 | controller.close();
15 | });
16 | },
17 | async flush(controller){
18 | api.parse(undefined, true, (record) => {
19 | controller.enqueue(record);
20 | }, () => {
21 | controller.close();
22 | });
23 | }
24 | });
25 | };
26 |
27 | export {parse};
28 |
--------------------------------------------------------------------------------
/submissions/E-foster/node_modules/csv-parse/lib/sync.d.ts:
--------------------------------------------------------------------------------
1 |
2 | import { Options } from './index.js';
3 |
4 | declare function parse(input: Buffer | string, options?: Options): any;
5 | // export default parse;
6 | export { parse };
7 |
8 | export {
9 | CastingContext, CastingFunction, CastingDateFunction,
10 | ColumnOption, Options, Info, CsvErrorCode, CsvError
11 | } from './index.js';
12 |
--------------------------------------------------------------------------------
/submissions/E-foster/node_modules/csv-parse/lib/sync.js:
--------------------------------------------------------------------------------
1 |
2 | import {CsvError, transform} from './api/index.js';
3 |
4 | const parse = function(data, opts={}){
5 | if(typeof data === 'string'){
6 | data = Buffer.from(data);
7 | }
8 | const records = opts && opts.objname ? {} : [];
9 | const parser = transform(opts);
10 | const push = (record) => {
11 | if(parser.options.objname === undefined)
12 | records.push(record);
13 | else{
14 | records[record[0]] = record[1];
15 | }
16 | };
17 | const close = () => {};
18 | const err1 = parser.parse(data, false, push, close);
19 | if(err1 !== undefined) throw err1;
20 | const err2 = parser.parse(undefined, true, push, close);
21 | if(err2 !== undefined) throw err2;
22 | return records;
23 | };
24 |
25 | // export default parse
26 | export { parse };
27 | export { CsvError };
28 |
--------------------------------------------------------------------------------
/submissions/E-foster/node_modules/csv-parse/lib/utils/is_object.js:
--------------------------------------------------------------------------------
1 |
2 | const is_object = function(obj){
3 | return (typeof obj === 'object' && obj !== null && !Array.isArray(obj));
4 | };
5 |
6 | export {is_object};
7 |
--------------------------------------------------------------------------------
/submissions/E-foster/node_modules/csv-parse/lib/utils/underscore.js:
--------------------------------------------------------------------------------
1 |
2 | const underscore = function(str){
3 | return str.replace(/([A-Z])/g, function(_, match){
4 | return '_' + match.toLowerCase();
5 | });
6 | };
7 |
8 | export {underscore};
9 |
--------------------------------------------------------------------------------
/submissions/E-foster/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "e-foster",
3 | "version": "1.0.0",
4 | "lockfileVersion": 3,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "e-foster",
9 | "version": "1.0.0",
10 | "license": "ISC",
11 | "dependencies": {
12 | "csv-parse": "^5.5.0"
13 | }
14 | },
15 | "node_modules/csv-parse": {
16 | "version": "5.5.0",
17 | "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-5.5.0.tgz",
18 | "integrity": "sha512-RxruSK3M4XgzcD7Trm2wEN+SJ26ChIb903+IWxNOcB5q4jT2Cs+hFr6QP39J05EohshRFEvyzEBoZ/466S2sbw=="
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/submissions/E-foster/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "e-foster",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "keywords": [],
10 | "author": "",
11 | "license": "ISC",
12 | "dependencies": {
13 | "csv-parse": "^5.5.0"
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/submissions/E-foster/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/E-foster/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/GeekkyCoder/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
--------------------------------------------------------------------------------
/submissions/GeekkyCoder/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "geekkycoder",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "keywords": [],
10 | "author": "",
11 | "license": "ISC",
12 | "dependencies": {
13 | "csv-parse": "^5.5.1",
14 | "express": "^4.18.2"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/submissions/Haneesh/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
--------------------------------------------------------------------------------
/submissions/Haneesh/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "haneesh",
3 | "version": "1.0.0",
4 | "lockfileVersion": 3,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "haneesh",
9 | "version": "1.0.0",
10 | "license": "ISC",
11 | "dependencies": {
12 | "csv-parse": "^5.5.0"
13 | }
14 | },
15 | "node_modules/csv-parse": {
16 | "version": "5.5.0",
17 | "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-5.5.0.tgz",
18 | "integrity": "sha512-RxruSK3M4XgzcD7Trm2wEN+SJ26ChIb903+IWxNOcB5q4jT2Cs+hFr6QP39J05EohshRFEvyzEBoZ/466S2sbw=="
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/submissions/Haneesh/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "haneesh",
3 | "version": "1.0.0",
4 | "description": "A solution to File IO's challenge (README.md)",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo Test"
8 | },
9 | "keywords": [
10 | "hacktoberfest",
11 | "file-io",
12 | "challenge",
13 | "file-io-solution"
14 | ],
15 | "author": "Haneesh",
16 | "license": "ISC",
17 | "dependencies": {
18 | "csv-parse": "^5.5.0"
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/submissions/Hrithik-C-A/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
--------------------------------------------------------------------------------
/submissions/Hrithik-C-A/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "hacktoberfest-file-io",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "script.js",
6 | "type": "module",
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "Hrithik C A",
12 | "license": "ISC",
13 | "dependencies": {
14 | "csv-parser": "^3.0.0"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/submissions/Insidiae/readme.md:
--------------------------------------------------------------------------------
1 | # Create a Spotify Data Logger feat. D3.js
2 |
3 | ## How To Run
4 |
5 | This is a simple HTML+CSS+JS app. To make sure the fetch requests for the dataset can run properly, you might want to run this app via a simple localhost server (or just use the Live Server extension if you're using VSCode):
6 |
7 | ```sh
8 | # Make sure you've navigated into submissions/Insidiae via the terminal:
9 | npx serve
10 | ```
11 |
--------------------------------------------------------------------------------
/submissions/JPLahoda/README.md:
--------------------------------------------------------------------------------
1 | # Spotify Data Logger
2 |
3 | ## What it does:
4 |
5 | -Uses a Spotify .csv file
6 | -Uses Python's Pandas data analysis library
7 | -Counts number of songs
8 | -Counts number of songs in the key of E
9 | -Finds the most common value in any specified column
--------------------------------------------------------------------------------
/submissions/JarelEze1/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/JarelEze1/.DS_Store
--------------------------------------------------------------------------------
/submissions/JarelEze1/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "jareleze1",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "spotify-analyzer.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "keywords": [],
10 | "author": "",
11 | "license": "ISC",
12 | "dependencies": {
13 | "csv-parser": "^3.0.0"
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/submissions/JarelEze1/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/JarelEze1/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/JarelEze1/spotify-analyzer-keyE.js:
--------------------------------------------------------------------------------
1 | const fs = require('fs');
2 | const csv = require('csv-parser');
3 |
4 | const csvFilePath = 'spotify-2023.csv';
5 |
6 | function countSongsInKeyE() {
7 | let keyECount = 0;
8 |
9 | fs.createReadStream(csvFilePath)
10 | .pipe(csv())
11 | .on('data', (row) => {
12 | // Check if the "key" column is "E"
13 | if (row.key === 'E') {
14 | keyECount++;
15 | }
16 | })
17 | .on('end', () => {
18 | console.log(`Number of songs in the key of E: ${keyECount}`);
19 | });
20 | }
21 |
22 | countSongsInKeyE();
23 |
--------------------------------------------------------------------------------
/submissions/JarelEze1/spotify-analyzer.js:
--------------------------------------------------------------------------------
1 | const fs = require('fs');
2 | const csv = require('csv-parser');
3 |
4 | const csvFilePath = 'spotify-2023.csv';
5 |
6 | function countSongs() {
7 | let songCount = 0;
8 |
9 | fs.createReadStream(csvFilePath)
10 | .pipe(csv())
11 | .on('data', (row) => {
12 | // For each row in the CSV, increment the song count
13 | songCount++;
14 | })
15 | .on('end', () => {
16 | console.log(`Total number of songs in the file: ${songCount}`);
17 | });
18 | }
19 |
20 | countSongs();
21 |
22 |
--------------------------------------------------------------------------------
/submissions/Jayaswini/Spotify/.mvn/wrapper/maven-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/Jayaswini/Spotify/.mvn/wrapper/maven-wrapper.jar
--------------------------------------------------------------------------------
/submissions/Jayaswini/Spotify/.mvn/wrapper/maven-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.4/apache-maven-3.9.4-bin.zip
2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar
3 |
--------------------------------------------------------------------------------
/submissions/Jayaswini/Spotify/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | Hacktoberfest
4 |
5 |
6 |
7 |
8 |
9 | org.eclipse.jdt.core.javabuilder
10 |
11 |
12 |
13 |
14 | org.eclipse.m2e.core.maven2Builder
15 |
16 |
17 |
18 |
19 | org.springframework.ide.eclipse.boot.validation.springbootbuilder
20 |
21 |
22 |
23 |
24 |
25 | org.eclipse.jdt.core.javanature
26 | org.eclipse.m2e.core.maven2Nature
27 |
28 |
29 |
--------------------------------------------------------------------------------
/submissions/Jayaswini/Spotify/.settings/org.eclipse.core.resources.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | encoding//src/main/java=UTF-8
3 | encoding//src/main/resources=UTF-8
4 | encoding//src/test/java=UTF-8
5 | encoding/=UTF-8
6 |
--------------------------------------------------------------------------------
/submissions/Jayaswini/Spotify/.settings/org.eclipse.jdt.apt.core.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | org.eclipse.jdt.apt.aptEnabled=false
3 |
--------------------------------------------------------------------------------
/submissions/Jayaswini/Spotify/.settings/org.eclipse.jdt.core.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
4 | org.eclipse.jdt.core.compiler.compliance=17
5 | org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
6 | org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
7 | org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
8 | org.eclipse.jdt.core.compiler.processAnnotations=disabled
9 | org.eclipse.jdt.core.compiler.release=enabled
10 | org.eclipse.jdt.core.compiler.source=17
11 |
--------------------------------------------------------------------------------
/submissions/Jayaswini/Spotify/.settings/org.eclipse.m2e.core.prefs:
--------------------------------------------------------------------------------
1 | activeProfiles=pom.xml
2 | eclipse.preferences.version=1
3 | resolveWorkspaceProjects=true
4 | version=1
5 |
--------------------------------------------------------------------------------
/submissions/Jayaswini/Spotify/.settings/org.springframework.ide.eclipse.prefs:
--------------------------------------------------------------------------------
1 | boot.validation.initialized=true
2 | eclipse.preferences.version=1
3 |
--------------------------------------------------------------------------------
/submissions/Jayaswini/Spotify/src/main/java/com/example/demo/OctoberfestApplication.java:
--------------------------------------------------------------------------------
1 | package com.example.demo;
2 |
3 | import org.springframework.beans.factory.annotation.Autowired;
4 | import org.springframework.boot.SpringApplication;
5 | import org.springframework.boot.autoconfigure.SpringBootApplication;
6 |
7 | import com.example.demo.Services.CsvServices;
8 |
9 | @SpringBootApplication
10 | public class OctoberfestApplication {
11 |
12 | public static void main(String[] args) {
13 |
14 | SpringApplication.run(OctoberfestApplication.class, args);
15 |
16 | }
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/submissions/Jayaswini/Spotify/src/main/java/com/example/demo/controller/CSVController.java:
--------------------------------------------------------------------------------
1 | package com.example.demo.controller;
2 |
3 | import java.io.FileNotFoundException;
4 |
5 | import org.springframework.beans.factory.annotation.Autowired;
6 | import org.springframework.web.bind.annotation.GetMapping;
7 | import org.springframework.web.bind.annotation.RestController;
8 |
9 | import com.example.demo.Services.CsvServices;
10 |
11 | @RestController
12 | public class CSVController {
13 | @Autowired
14 | private CsvServices csv;
15 | @GetMapping("/csv")
16 | private void csvData() {
17 | try {
18 | csv.CsvParseData();
19 | } catch (FileNotFoundException e) {
20 | // TODO Auto-generated catch block
21 | e.printStackTrace();
22 | }
23 | }
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/submissions/Jayaswini/Spotify/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/submissions/Jayaswini/Spotify/src/test/java/com/example/demo/OctoberfestApplicationTests.java:
--------------------------------------------------------------------------------
1 | package com.example.demo;
2 |
3 | import org.junit.jupiter.api.Test;
4 | import org.springframework.boot.test.context.SpringBootTest;
5 |
6 | @SpringBootTest
7 | class OctoberfestApplicationTests {
8 |
9 | @Test
10 | void contextLoads() {
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/submissions/Jayaswini/Spotify/target/classes/META-INF/MANIFEST.MF:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 | Build-Jdk-Spec: 19
3 | Implementation-Title: Octoberfest
4 | Implementation-Version: 0.0.1-SNAPSHOT
5 | Created-By: Maven Integration for Eclipse
6 |
7 |
--------------------------------------------------------------------------------
/submissions/Jayaswini/Spotify/target/classes/META-INF/maven/com.example/Octoberfest/pom.properties:
--------------------------------------------------------------------------------
1 | #Generated by Maven Integration for Eclipse
2 | #Sun Oct 01 17:27:41 IST 2023
3 | artifactId=Octoberfest
4 | groupId=com.example
5 | m2e.projectLocation=C\:\\Users\\jayas\\eclipse-workspace\\Hacktoberfest
6 | m2e.projectName=Hacktoberfest
7 | version=0.0.1-SNAPSHOT
8 |
--------------------------------------------------------------------------------
/submissions/Jayaswini/Spotify/target/classes/application.properties:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/submissions/Jayaswini/Spotify/target/classes/com/example/demo/OctoberfestApplication.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/Jayaswini/Spotify/target/classes/com/example/demo/OctoberfestApplication.class
--------------------------------------------------------------------------------
/submissions/Jayaswini/Spotify/target/classes/com/example/demo/Services/CsvServices.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/Jayaswini/Spotify/target/classes/com/example/demo/Services/CsvServices.class
--------------------------------------------------------------------------------
/submissions/Jayaswini/Spotify/target/classes/com/example/demo/controller/CSVController.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/Jayaswini/Spotify/target/classes/com/example/demo/controller/CSVController.class
--------------------------------------------------------------------------------
/submissions/Jayaswini/Spotify/target/test-classes/com/example/demo/OctoberfestApplicationTests.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/Jayaswini/Spotify/target/test-classes/com/example/demo/OctoberfestApplicationTests.class
--------------------------------------------------------------------------------
/submissions/JohnEsleyer/go.mod:
--------------------------------------------------------------------------------
1 | module spotify-data-logger
2 |
3 | go 1.18
4 |
--------------------------------------------------------------------------------
/submissions/Joshua-Onyekachukwu/Python-Script-for-Spotify-Data-Analysis/README.md:
--------------------------------------------------------------------------------
1 | # Python-Script-for-Spotify-Data-Analysis
--------------------------------------------------------------------------------
/submissions/Joshua-Onyekachukwu/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/Joshua-Onyekachukwu/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/Kamalesh-Seervi/go.mod:
--------------------------------------------------------------------------------
1 | module github.com/Kamalesh-Seervi/Spotify
2 |
3 | go 1.21.1
4 |
--------------------------------------------------------------------------------
/submissions/Kamalesh-Seervi/main.go:
--------------------------------------------------------------------------------
1 | package main
2 |
3 | import (
4 | "encoding/csv"
5 | "fmt"
6 | "log"
7 | "os"
8 | )
9 |
10 | func main() {
11 | // Open the CSV file
12 | file, err := os.Open("spotify-2023.csv")
13 | if err != nil {
14 | log.Fatalf("Error opening CSV file: %v", err)
15 | }
16 | defer file.Close()
17 |
18 | // Create a CSV reader
19 | csvReader := csv.NewReader(file)
20 |
21 | // Read all lines from the CSV file
22 | lines, err := csvReader.ReadAll()
23 | if err != nil {
24 | log.Fatalf("Error reading CSV: %v", err)
25 | }
26 |
27 | // Calculate the number of songs (excluding the header)
28 | numSongs := len(lines) - 1
29 |
30 | fmt.Printf("Number of songs in the file: %d\n", numSongs)
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/submissions/Kamalesh-Seervi/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/Kamalesh-Seervi/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/Manuela-Chamoso/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "csv-parser": "^3.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/submissions/Manuela-Chamoso/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/Manuela-Chamoso/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/Manuela-Chamoso/spotify_data_logger.js:
--------------------------------------------------------------------------------
1 | const fs = require('fs');
2 | const csv = require('csv-parser');
3 |
4 | const csvFilePath = 'spotify-2023.csv';
5 |
6 | function analyzeSpotifyData() {
7 | const songsInKeyE = [];
8 |
9 | fs.createReadStream(csvFilePath)
10 | .pipe(csv())
11 | .on('data', (row) => {
12 | if (row.key === 'E') {
13 | songsInKeyE.push(row);
14 | }
15 | })
16 | .on('end', () => {
17 | console.log(`Number of songs in the key of E: ${songsInKeyE.length}`);
18 | });
19 | }
20 |
21 | analyzeSpotifyData();
22 |
--------------------------------------------------------------------------------
/submissions/PunGrumpy/go.mod:
--------------------------------------------------------------------------------
1 | module PunGrumpy
2 |
3 | go 1.21.3
4 |
--------------------------------------------------------------------------------
/submissions/PunGrumpy/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/PunGrumpy/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/RazvanCiobanel/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "razvanciobanel",
3 | "version": "1.0.0",
4 | "description": "RazvanCiobanel JS submision",
5 | "main": "index.js",
6 | "type": "module",
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1",
9 | "start": "node index.js"
10 | },
11 | "author": "",
12 | "license": "ISC",
13 | "dependencies": {
14 | "csv-parser": "^3.0.0"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/submissions/RohanSalgare/index.py:
--------------------------------------------------------------------------------
1 | import pandas as pd
2 | import csv
3 |
4 |
5 | def total_num_of_songs():
6 | df = pd.read_csv('spotify-2023.csv', encoding='latin1')
7 | return len(df)
8 |
9 | def number_of_songs_in_key(key):
10 | with open('spotify-2023.csv', 'r'
11 | ,encoding='latin1') as file:
12 | reader = csv.reader(file)
13 | columns = next(reader)
14 | #storing the index of element 'key' in index variable
15 | index = columns.index('key')
16 |
17 | num_of_songs = 0
18 | for row in reader:
19 | if row[index] == key:
20 | num_of_songs += 1
21 |
22 | file.close()
23 | return num_of_songs
24 |
25 |
26 | print(f"Total Number of songs : {total_num_of_songs()}")
27 | print(f"Total Number of songs in Key: {number_of_songs_in_key('E')}")
28 |
29 |
--------------------------------------------------------------------------------
/submissions/Sanyog_Mishra[DarkRaiderCB]-Ch2/info.txt:
--------------------------------------------------------------------------------
1 | The code aims to solve Challenge 2 ie. Detecting the total number of songs with key E.
2 | Code written in Python 3.
3 | Use of csv module to solve the Challenge.
4 |
--------------------------------------------------------------------------------
/submissions/Sanyog_Mishra[DarkRaiderCB]-Ch2/project.py:
--------------------------------------------------------------------------------
1 | #HACKTOBERFEST-2023
2 | #Python Code for FILE I/O CHALLENGE 2
3 |
4 | import csv #Using csv module
5 | with open("spotify-2023.csv","r") as song_file:
6 | read_data = csv.reader(song_file)
7 | next(read_data)
8 | ctr=0 #initialising Counter
9 | for line in read_data:
10 | if line[15] == 'E':
11 | ctr=ctr+1
12 |
13 | print(f"The total number of songs with the key of 'E' in spotify-2023.csv are: {ctr}")
14 |
--------------------------------------------------------------------------------
/submissions/Sanyog_Mishra[DarkRaiderCB]-Ch3/info.txt:
--------------------------------------------------------------------------------
1 | The code aims to solve Challenge 3 ie. Counting the occurrences of values in a specified column (here: artist names) and determine the most common value.
2 | Code written in Python 3.
3 | Use of csv module to solve the Challenge.
4 |
--------------------------------------------------------------------------------
/submissions/Sanyog_Mishra[DarkRaiderCB]/info.txt:
--------------------------------------------------------------------------------
1 | The code aims to solve Challenge 1 ie. Detecting the total number of songs.
2 | Code written in Python 3.
3 | Use of csv module to solve the Challenge.
4 |
--------------------------------------------------------------------------------
/submissions/Sanyog_Mishra[DarkRaiderCB]/project.py:
--------------------------------------------------------------------------------
1 | # HACKTOBERFEST-2023
2 | # Python Code for FILE I/O CHALLENGE 1
3 |
4 | import csv #Using csv module
5 | with open("spotify-2023.csv","r") as song_file:
6 | read_data = csv.reader(song_file)
7 | next(read_data)
8 | ctr=0 #initialising Counter
9 | for line in read_data:
10 | ctr=ctr+1
11 | print(f"The total number of songs in spotify-2023.csv are: {ctr}")
12 |
13 |
14 |
--------------------------------------------------------------------------------
/submissions/Sebastian4090/.gitignore:
--------------------------------------------------------------------------------
1 | // Ignore node_modules folder
2 | node_modules
--------------------------------------------------------------------------------
/submissions/Sebastian4090/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "sebastian4090",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "keywords": [],
10 | "author": "",
11 | "license": "ISC",
12 | "dependencies": {
13 | "csv": "^6.3.3"
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/submissions/Shailaputri_awesome_script/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/Shailaputri_awesome_script/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/Shubhamm33/.gitignore:
--------------------------------------------------------------------------------
1 | env
2 | spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/Shubhamm33/requirements.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/Shubhamm33/requirements.txt
--------------------------------------------------------------------------------
/submissions/SimardeepSingh/main.py:
--------------------------------------------------------------------------------
1 | import pandas as pd
2 |
3 | # Read the data from csv file
4 | use_cols = ['track_name', 'artist(s)_name', 'key']
5 | df = pd.read_csv('spotify-2023.csv', usecols=use_cols)
6 |
7 | # Count the values
8 | songs_qty = df.count('rows')['track_name']
9 | e_qty = df['key'].value_counts()['E']
10 |
11 | # Log the results to the console
12 | print(f'There are {songs_qty} songs in this list.')
13 | print(f'There are {e_qty} songs in the key of E.')
14 | for artist, qty in df['artist(s)_name'].value_counts(ascending=False).items():
15 | print(f'The most popular artist is {artist} with {qty} songs.')
16 | break
17 |
--------------------------------------------------------------------------------
/submissions/Sreeram0303/.ipynb_checkpoints/Untitled-checkpoint.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": null,
6 | "id": "7e31cab0-fd46-4740-8278-ab44ddbe7001",
7 | "metadata": {},
8 | "outputs": [],
9 | "source": []
10 | }
11 | ],
12 | "metadata": {
13 | "kernelspec": {
14 | "display_name": "Python 3 (ipykernel)",
15 | "language": "python",
16 | "name": "python3"
17 | },
18 | "language_info": {
19 | "codemirror_mode": {
20 | "name": "ipython",
21 | "version": 3
22 | },
23 | "file_extension": ".py",
24 | "mimetype": "text/x-python",
25 | "name": "python",
26 | "nbconvert_exporter": "python",
27 | "pygments_lexer": "ipython3",
28 | "version": "3.11.3"
29 | }
30 | },
31 | "nbformat": 4,
32 | "nbformat_minor": 5
33 | }
34 |
--------------------------------------------------------------------------------
/submissions/Suparnaen/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
--------------------------------------------------------------------------------
/submissions/Suparnaen/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "File-io-spotify-parser",
3 | "version": "1.0.0",
4 | "description": "Create a data processing file I/O script that reads data from a CSV file containing Spotify data and performs some analysi",
5 | "main": "app.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "author": "Suparna",
10 | "license": "ISC",
11 | "dependencies": {
12 | "csv-parser": "^3.0.0"
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/submissions/Suparnaen/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/Suparnaen/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/Sylphritz/python/.gitignore:
--------------------------------------------------------------------------------
1 | env/
2 |
--------------------------------------------------------------------------------
/submissions/Sylphritz/python/main.py:
--------------------------------------------------------------------------------
1 | import pandas as pd
2 |
3 |
4 | def main():
5 | data = pd.read_csv('spotify-2023.csv')
6 |
7 | e_key_songs = data[data['key'] == 'E']
8 | song_count_by_artist = data['artist(s)_name'].value_counts()
9 | most_songs_index = song_count_by_artist.idxmax()
10 |
11 | print(f'There are total of {len(data)} songs in the dataset.')
12 | print(f'There are {len(e_key_songs)} songs in E key.')
13 | print(
14 | f'The artist with the most songs is {most_songs_index} with {song_count_by_artist[most_songs_index]} songs')
15 |
16 |
17 | if __name__ == '__main__':
18 | main()
19 |
--------------------------------------------------------------------------------
/submissions/Sylphritz/python/requirements.txt:
--------------------------------------------------------------------------------
1 | pandas
2 |
--------------------------------------------------------------------------------
/submissions/T-Crypt/requirements.txt:
--------------------------------------------------------------------------------
1 | pandas==2.1.1
2 |
--------------------------------------------------------------------------------
/submissions/T-Crypt/spotify.py:
--------------------------------------------------------------------------------
1 | import pandas as pd
2 |
3 | # Read the CSV file into a pandas DataFrame with specified encoding
4 | df = pd.read_csv('./spotify-2023.csv', encoding='ISO-8859-1')
5 |
6 | def count_songs_in_key_of_e(dataframe):
7 | key_of_e_songs = dataframe[dataframe['key'] == 'E']
8 | return len(key_of_e_songs)
9 |
10 | # Print the total number of songs in the file
11 | print("Number of songs:", len(df))
12 |
13 | # Print the number of songs in the key of E with appropriate text
14 | print("Total Number in Key of E:", count_songs_in_key_of_e(df))
15 |
--------------------------------------------------------------------------------
/submissions/TJEgbert/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/TJEgbert/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/TerminalEagle/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
--------------------------------------------------------------------------------
/submissions/TerminalEagle/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "spotify-data-logger",
3 | "version": "1.0.0",
4 | "description": "Logs the data required by the challenges from the .csv file",
5 | "main": "script.js",
6 | "scripts": {
7 | "start": "node script.js",
8 | "dev": "nodemon script.js",
9 | "test": "echo \"Error: no test specified\" && exit 1"
10 | },
11 | "author": "TerminalEagle",
12 | "license": "ISC",
13 | "dependencies": {
14 | "csv-parser": "^3.0.0"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/submissions/Williamstophef/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
--------------------------------------------------------------------------------
/submissions/Williamstophef/node_modules/.bin/csv-parser:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3 |
4 | case `uname` in
5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
6 | esac
7 |
8 | if [ -x "$basedir/node" ]; then
9 | exec "$basedir/node" "$basedir/../csv-parser/bin/csv-parser" "$@"
10 | else
11 | exec node "$basedir/../csv-parser/bin/csv-parser" "$@"
12 | fi
13 |
--------------------------------------------------------------------------------
/submissions/Williamstophef/node_modules/.bin/csv-parser.cmd:
--------------------------------------------------------------------------------
1 | @ECHO off
2 | GOTO start
3 | :find_dp0
4 | SET dp0=%~dp0
5 | EXIT /b
6 | :start
7 | SETLOCAL
8 | CALL :find_dp0
9 |
10 | IF EXIST "%dp0%\node.exe" (
11 | SET "_prog=%dp0%\node.exe"
12 | ) ELSE (
13 | SET "_prog=node"
14 | SET PATHEXT=%PATHEXT:;.JS;=;%
15 | )
16 |
17 | endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\csv-parser\bin\csv-parser" %*
18 |
--------------------------------------------------------------------------------
/submissions/Williamstophef/node_modules/fs/README.md:
--------------------------------------------------------------------------------
1 | # Security holding package
2 |
3 | This package name is not currently in use, but was formerly occupied
4 | by another package. To avoid malicious use, npm is hanging on to the
5 | package name, but loosely, and we'll probably give it to you if you
6 | want it.
7 |
8 | You may adopt this package by contacting support@npmjs.com and
9 | requesting the name.
10 |
--------------------------------------------------------------------------------
/submissions/Williamstophef/node_modules/fs/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "fs",
3 | "version": "0.0.1-security",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "repository": {
10 | "type": "git",
11 | "url": "git+https://github.com/npm/security-holder.git"
12 | },
13 | "keywords": [],
14 | "author": "",
15 | "license": "ISC",
16 | "bugs": {
17 | "url": "https://github.com/npm/security-holder/issues"
18 | },
19 | "homepage": "https://github.com/npm/security-holder#readme"
20 | }
21 |
--------------------------------------------------------------------------------
/submissions/Williamstophef/node_modules/minimist/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "root": true,
3 |
4 | "extends": "@ljharb/eslint-config/node/0.4",
5 |
6 | "rules": {
7 | "array-element-newline": 0,
8 | "complexity": 0,
9 | "func-style": [2, "declaration"],
10 | "max-lines-per-function": 0,
11 | "max-nested-callbacks": 1,
12 | "max-statements-per-line": 1,
13 | "max-statements": 0,
14 | "multiline-comment-style": 0,
15 | "no-continue": 1,
16 | "no-param-reassign": 1,
17 | "no-restricted-syntax": 1,
18 | "object-curly-newline": 0,
19 | },
20 |
21 | "overrides": [
22 | {
23 | "files": "test/**",
24 | "rules": {
25 | "camelcase": 0,
26 | },
27 | },
28 | ]
29 | }
30 |
--------------------------------------------------------------------------------
/submissions/Williamstophef/node_modules/minimist/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github: [ljharb]
4 | patreon: # Replace with a single Patreon username
5 | open_collective: # Replace with a single Open Collective username
6 | ko_fi: # Replace with a single Ko-fi username
7 | tidelift: npm/minimist
8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9 | liberapay: # Replace with a single Liberapay username
10 | issuehunt: # Replace with a single IssueHunt username
11 | otechie: # Replace with a single Otechie username
12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
13 |
--------------------------------------------------------------------------------
/submissions/Williamstophef/node_modules/minimist/.nycrc:
--------------------------------------------------------------------------------
1 | {
2 | "all": true,
3 | "check-coverage": false,
4 | "reporter": ["text-summary", "text", "html", "json"],
5 | "lines": 86,
6 | "statements": 85.93,
7 | "functions": 82.43,
8 | "branches": 76.06,
9 | "exclude": [
10 | "coverage",
11 | "example",
12 | "test"
13 | ]
14 | }
15 |
--------------------------------------------------------------------------------
/submissions/Williamstophef/node_modules/minimist/example/parse.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var argv = require('../')(process.argv.slice(2));
4 | console.log(argv);
5 |
--------------------------------------------------------------------------------
/submissions/Williamstophef/node_modules/minimist/test/dotted.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var parse = require('../');
4 | var test = require('tape');
5 |
6 | test('dotted alias', function (t) {
7 | var argv = parse(['--a.b', '22'], { default: { 'a.b': 11 }, alias: { 'a.b': 'aa.bb' } });
8 | t.equal(argv.a.b, 22);
9 | t.equal(argv.aa.bb, 22);
10 | t.end();
11 | });
12 |
13 | test('dotted default', function (t) {
14 | var argv = parse('', { default: { 'a.b': 11 }, alias: { 'a.b': 'aa.bb' } });
15 | t.equal(argv.a.b, 11);
16 | t.equal(argv.aa.bb, 11);
17 | t.end();
18 | });
19 |
20 | test('dotted default with no alias', function (t) {
21 | var argv = parse('', { default: { 'a.b': 11 } });
22 | t.equal(argv.a.b, 11);
23 | t.end();
24 | });
25 |
--------------------------------------------------------------------------------
/submissions/Williamstophef/node_modules/minimist/test/kv_short.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var parse = require('../');
4 | var test = require('tape');
5 |
6 | test('short -k=v', function (t) {
7 | t.plan(1);
8 |
9 | var argv = parse(['-b=123']);
10 | t.deepEqual(argv, { b: 123, _: [] });
11 | });
12 |
13 | test('multi short -k=v', function (t) {
14 | t.plan(1);
15 |
16 | var argv = parse(['-a=whatever', '-b=robots']);
17 | t.deepEqual(argv, { a: 'whatever', b: 'robots', _: [] });
18 | });
19 |
20 | test('short with embedded equals -k=a=b', function (t) {
21 | t.plan(1);
22 |
23 | var argv = parse(['-k=a=b']);
24 | t.deepEqual(argv, { k: 'a=b', _: [] });
25 | });
26 |
27 | test('short with later equals like -ab=c', function (t) {
28 | t.plan(1);
29 |
30 | var argv = parse(['-ab=c']);
31 | t.deepEqual(argv, { a: true, b: 'c', _: [] });
32 | });
33 |
--------------------------------------------------------------------------------
/submissions/Williamstophef/node_modules/minimist/test/long.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var test = require('tape');
4 | var parse = require('../');
5 |
6 | test('long opts', function (t) {
7 | t.deepEqual(
8 | parse(['--bool']),
9 | { bool: true, _: [] },
10 | 'long boolean'
11 | );
12 | t.deepEqual(
13 | parse(['--pow', 'xixxle']),
14 | { pow: 'xixxle', _: [] },
15 | 'long capture sp'
16 | );
17 | t.deepEqual(
18 | parse(['--pow=xixxle']),
19 | { pow: 'xixxle', _: [] },
20 | 'long capture eq'
21 | );
22 | t.deepEqual(
23 | parse(['--host', 'localhost', '--port', '555']),
24 | { host: 'localhost', port: 555, _: [] },
25 | 'long captures sp'
26 | );
27 | t.deepEqual(
28 | parse(['--host=localhost', '--port=555']),
29 | { host: 'localhost', port: 555, _: [] },
30 | 'long captures eq'
31 | );
32 | t.end();
33 | });
34 |
--------------------------------------------------------------------------------
/submissions/Williamstophef/node_modules/minimist/test/parse_modified.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var parse = require('../');
4 | var test = require('tape');
5 |
6 | test('parse with modifier functions', function (t) {
7 | t.plan(1);
8 |
9 | var argv = parse(['-b', '123'], { boolean: 'b' });
10 | t.deepEqual(argv, { b: true, _: [123] });
11 | });
12 |
--------------------------------------------------------------------------------
/submissions/Williamstophef/node_modules/minimist/test/stop_early.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var parse = require('../');
4 | var test = require('tape');
5 |
6 | test('stops parsing on the first non-option when stopEarly is set', function (t) {
7 | var argv = parse(['--aaa', 'bbb', 'ccc', '--ddd'], {
8 | stopEarly: true,
9 | });
10 |
11 | t.deepEqual(argv, {
12 | aaa: 'bbb',
13 | _: ['ccc', '--ddd'],
14 | });
15 |
16 | t.end();
17 | });
18 |
--------------------------------------------------------------------------------
/submissions/Williamstophef/node_modules/minimist/test/whitespace.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var parse = require('../');
4 | var test = require('tape');
5 |
6 | test('whitespace should be whitespace', function (t) {
7 | t.plan(1);
8 | var x = parse(['-x', '\t']).x;
9 | t.equal(x, '\t');
10 | });
11 |
--------------------------------------------------------------------------------
/submissions/Williamstophef/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "module",
3 | "name": "file-io",
4 | "version": "1.0.0",
5 | "description": "Create a data processing file I/O script that reads data from a CSV file containing Spotify data and performs some analysis to complete one or more of the challenges outlined below.",
6 | "main": "index.js",
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "Christopher Williams",
12 | "license": "ISC",
13 | "dependencies": {
14 | "csv-parser": "^3.0.0",
15 | "fs": "^0.0.1-security"
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/submissions/YogiK/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | .DS_Store
--------------------------------------------------------------------------------
/submissions/YogiK/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "csv-parser": "^3.0.0"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/submissions/Zhi-Jian-Tiow/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | SpotifyDataLogger.class
3 | CsvReader.class
4 | DataProcessor.class
5 |
--------------------------------------------------------------------------------
/submissions/Zhi-Jian-Tiow/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/submissions/Zhi-Jian-Tiow/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/submissions/Zhi-Jian-Tiow/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/submissions/Zhi-Jian-Tiow/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/submissions/Zhi-Jian-Tiow/README.me:
--------------------------------------------------------------------------------
1 | To run the file, enter the following command:
2 | java SpotifyDataLogger.java
--------------------------------------------------------------------------------
/submissions/Zhi-Jian-Tiow/out/production/Zhi-Jian-Tiow/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | SpotifyDataLogger.class
3 | CsvReader.class
4 | DataProcessor.class
5 |
--------------------------------------------------------------------------------
/submissions/Zhi-Jian-Tiow/out/production/Zhi-Jian-Tiow/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/submissions/Zhi-Jian-Tiow/out/production/Zhi-Jian-Tiow/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/submissions/Zhi-Jian-Tiow/out/production/Zhi-Jian-Tiow/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/submissions/Zhi-Jian-Tiow/out/production/Zhi-Jian-Tiow/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/submissions/Zhi-Jian-Tiow/out/production/Zhi-Jian-Tiow/README.me:
--------------------------------------------------------------------------------
1 | To run the file, enter the following command:
2 | java SpotifyDataLogger.java
--------------------------------------------------------------------------------
/submissions/Zhi-Jian-Tiow/out/production/Zhi-Jian-Tiow/Zhi-Jian-Tiow.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/submissions/Zhi-Jian-Tiow/out/production/Zhi-Jian-Tiow/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/Zhi-Jian-Tiow/out/production/Zhi-Jian-Tiow/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/Zhi-Jian-Tiow/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/Zhi-Jian-Tiow/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/aaditkamat/.gitignore:
--------------------------------------------------------------------------------
1 | venv/
2 |
--------------------------------------------------------------------------------
/submissions/aaditkamat/README.md:
--------------------------------------------------------------------------------
1 | # Instructions
2 | Follow these steps to see the results for the challenges:
3 | 1. Set up a python virtual environment in this directory:
4 | ```bash
5 | cd submissions/aaditkamat
6 | python -m venv venv
7 | source venv/bin/activate
8 | ```
9 | 2. Install the prerequisites for using Pandas:
10 | ```bash
11 | pip install -r requirements.txt
12 | ```
13 |
14 | 3. Execute the `process.py` Python script:
15 | ```bash
16 | python process.py
17 | ```
--------------------------------------------------------------------------------
/submissions/aaditkamat/requirements.txt:
--------------------------------------------------------------------------------
1 | numpy==1.26.0
2 | pandas==2.1.1
3 | python-dateutil==2.8.2
4 | pytz==2023.3.post1
5 | six==1.16.0
6 | tzdata==2023.3
7 |
--------------------------------------------------------------------------------
/submissions/abeonweb/main.js:
--------------------------------------------------------------------------------
1 | const fs = require('fs');
2 | const csv = require('csv-parser');
3 |
4 | // Specify the path to the CSV file
5 | const csvFilePath = 'C:\\Users\\Manug\\OneDrive\\Área de Trabalho\\file-io\\file-io\\spotify-2023.csv';
6 |
7 | // Function to read and process the CSV file
8 | function analyzeSpotifyData() {
9 | const songsInKeyE = [];
10 |
11 | fs.createReadStream(csvFilePath)
12 | .pipe(csv())
13 | .on('data', (row) => {
14 | // Assuming the key column is named "key" in the CSV file
15 | if (row.key === 'E') {
16 | songsInKeyE.push(row);
17 | }
18 | })
19 | .on('end', () => {
20 | console.log(`Number of songs in the key of E: ${songsInKeyE.length}`);
21 | });
22 | }
23 |
24 | // Run the data analysis
25 | analyzeSpotifyData();
26 |
--------------------------------------------------------------------------------
/submissions/abeonweb/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "abeonweb",
3 | "lockfileVersion": 3,
4 | "requires": true,
5 | "packages": {
6 | "": {
7 | "dependencies": {
8 | "csv-parse": "^5.5.2"
9 | }
10 | },
11 | "node_modules/csv-parse": {
12 | "version": "5.5.2",
13 | "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-5.5.2.tgz",
14 | "integrity": "sha512-YRVtvdtUNXZCMyK5zd5Wty1W6dNTpGKdqQd4EQ8tl/c6KW1aMBB1Kg1ppky5FONKmEqGJ/8WjLlTNLPne4ioVA=="
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/submissions/abeonweb/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "csv-parse": "^5.5.2"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/submissions/abeonweb/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/abeonweb/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/ahmadalmasri95/main.py:
--------------------------------------------------------------------------------
1 | # Let's import the pandas library first to deal with csv file
2 | import pandas
3 | # Read the csv file using pandas and convert it to DataFrame
4 | df = pandas.read_csv('spotify-2023.csv',encoding_errors='replace')
5 | # Let's do some analysis on the data we've got
6 | total_songs = len(df)
7 | num_songs_in_E_key = len(df[df[key]=='E'])
8 | release_years_counts = df['released_year'].nunique()
9 | max_year_of_releases = df['released_year'].max()
10 | # Displaying our simple analysis
11 | print(f'Total songs are :{total_songs}')
12 | print(f'The number of songs in the key of E is :{num_songs_in_E_key}')
13 | print(f'The number of release years are :{release_years_counts}')
14 | print(f'The most year of released songs is :{max_year_of_releases}')
--------------------------------------------------------------------------------
/submissions/ahmadalmasri95/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/ahmadalmasri95/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/alifanza259/.gitignore:
--------------------------------------------------------------------------------
1 | /bin/
2 | /target/
3 |
--------------------------------------------------------------------------------
/submissions/alifanza259/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/submissions/alifanza259/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/submissions/alifanza259/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/submissions/alifanza259/.idea/libraries/Maven__com_opencsv_opencsv_5_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/submissions/alifanza259/.idea/libraries/Maven__commons_beanutils_commons_beanutils_1_9_4.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/submissions/alifanza259/.idea/libraries/Maven__commons_collections_commons_collections_3_2_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/submissions/alifanza259/.idea/libraries/Maven__commons_logging_commons_logging_1_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/submissions/alifanza259/.idea/libraries/Maven__org_apache_commons_commons_collections4_4_4.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/submissions/alifanza259/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_9.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/submissions/alifanza259/.idea/libraries/Maven__org_apache_commons_commons_text_1_7.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/submissions/alifanza259/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/submissions/alifanza259/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/submissions/alifanza259/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/submissions/alifanza259/.settings/org.eclipse.core.resources.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | encoding/=UTF-8
3 | encoding/src=UTF-8
4 |
--------------------------------------------------------------------------------
/submissions/alifanza259/.settings/org.eclipse.jdt.core.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
3 | org.eclipse.jdt.core.compiler.compliance=17
4 | org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
5 | org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
6 | org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
7 | org.eclipse.jdt.core.compiler.release=enabled
8 | org.eclipse.jdt.core.compiler.source=17
9 |
--------------------------------------------------------------------------------
/submissions/alifanza259/.settings/org.eclipse.m2e.core.prefs:
--------------------------------------------------------------------------------
1 | activeProfiles=
2 | eclipse.preferences.version=1
3 | resolveWorkspaceProjects=true
4 | version=1
5 |
--------------------------------------------------------------------------------
/submissions/alifanza259/README.md:
--------------------------------------------------------------------------------
1 | # How to run
2 | 1. Make sure java is installed
3 |
4 | 2. Install apache maven:
5 | Linux ubuntu: `sudo apt install maven`
6 | Windows & Mac: Refer to official site [https://maven.apache.org/download.cgi](https://maven.apache.org/install.html)
7 |
8 | 3. Execute this command in the root directory of `alifanza259` directory: `mvn compile exec:java -Dexec.mainClass=challange.CsvProcessor`
9 |
--------------------------------------------------------------------------------
/submissions/alifanza259/src/module-info.java:
--------------------------------------------------------------------------------
1 | module alifanza259 {
2 | requires opencsv;
3 | requires java.sql;
4 | opens challange;
5 | }
--------------------------------------------------------------------------------
/submissions/alifanza259_go/README.md:
--------------------------------------------------------------------------------
1 | # How to run
2 | Run this command in `alifanza259_go` directory : `go run main.go`
--------------------------------------------------------------------------------
/submissions/alifanza259_go/go.mod:
--------------------------------------------------------------------------------
1 | module alifanza259_go
2 |
3 | go 1.23
4 |
--------------------------------------------------------------------------------
/submissions/alifanza259_js/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
--------------------------------------------------------------------------------
/submissions/alifanza259_js/README.md:
--------------------------------------------------------------------------------
1 | # How to run
2 | 1. Make sure node and npm are installed
3 | 2. Run `npm install`
4 | 3. Run `node index`
--------------------------------------------------------------------------------
/submissions/alifanza259_js/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "alifanza259_js",
3 | "version": "1.0.0",
4 | "lockfileVersion": 3,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "alifanza259_js",
9 | "version": "1.0.0",
10 | "license": "ISC",
11 | "dependencies": {
12 | "csv-parse": "^5.5.1"
13 | }
14 | },
15 | "node_modules/csv-parse": {
16 | "version": "5.5.1",
17 | "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-5.5.1.tgz",
18 | "integrity": "sha512-A6DrzSnN7MuOjXOT2tbO08YyYnP9sNDn8zITMHbZN/qt3gUzdGcu3LacYKY7b3RHwKoPwkhhmLeP7SE30cRmgg=="
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/submissions/alifanza259_js/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "alifanza259_js",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "author": "",
10 | "license": "ISC",
11 | "dependencies": {
12 | "csv-parse": "^5.5.1"
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/submissions/ankeshp03/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/ankeshp03/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/archeana/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/archeana/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/barryhanna/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | **/.DS_Store
3 | *.DS_Store
4 | .DS_Store
5 |
--------------------------------------------------------------------------------
/submissions/barryhanna/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "file-io-retry",
3 | "version": "1.0.0",
4 | "lockfileVersion": 3,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "file-io-retry",
9 | "version": "1.0.0",
10 | "license": "ISC",
11 | "dependencies": {
12 | "csv-parse": "^5.5.1"
13 | }
14 | },
15 | "node_modules/csv-parse": {
16 | "version": "5.5.1",
17 | "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-5.5.1.tgz",
18 | "integrity": "sha512-A6DrzSnN7MuOjXOT2tbO08YyYnP9sNDn8zITMHbZN/qt3gUzdGcu3LacYKY7b3RHwKoPwkhhmLeP7SE30cRmgg=="
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/submissions/barryhanna/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "file-io-retry",
3 | "version": "1.0.0",
4 | "description": "Create a data processing file I/O script that reads data from a CSV file containing Spotify data and performs some analysis to complete one or more of the challenges outlined bdlow.",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "repository": {
10 | "type": "git",
11 | "url": "git+https://github.com/barryhanna/file-io.git"
12 | },
13 | "keywords": [],
14 | "author": "",
15 | "license": "ISC",
16 | "bugs": {
17 | "url": "https://github.com/barryhanna/file-io/issues"
18 | },
19 | "homepage": "https://github.com/barryhanna/file-io#readme",
20 | "dependencies": {
21 | "csv-parse": "^5.5.1"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/submissions/beneyal/README.md:
--------------------------------------------------------------------------------
1 | # Spotify Analysis in Scala
2 |
3 | ## How to Run
4 |
5 | 1. Install Scala CLI from [here](https://scala-cli.virtuslab.org/)
6 | 2. Run `scala-cli SpotifyAnalysis.scala`
7 |
--------------------------------------------------------------------------------
/submissions/christine-aqui/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
--------------------------------------------------------------------------------
/submissions/christine-aqui/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "christine-aqui",
3 | "version": "1.0.0",
4 | "description": "My Spotify Data Logger",
5 | "main": "index.js",
6 | "scripts": {
7 | "start": "node index.js",
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "keywords": [],
11 | "author": "Chris Aqui",
12 | "license": "ISC",
13 | "dependencies": {
14 | "csv-parser": "^3.0.0"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/submissions/czarjulius/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | **/.DS_Store
3 | *.DS_Store
4 | .DS_Store
--------------------------------------------------------------------------------
/submissions/czarjulius/index.js:
--------------------------------------------------------------------------------
1 | const path = require('path');
2 | const spotifyDataAnalyzer = require('./spotifyDataAnalyzer');
3 |
4 | const csvFilePath = path.join(__dirname, 'spotify-2023.csv');
5 |
6 | const key = 'E';
7 | const columnToCount = 'artist(s)_name';
8 |
9 | spotifyDataAnalyzer(csvFilePath, { key, columnToCount })
10 | .then((result) => {
11 | console.log(`Total number of songs in the CSV file: ${result.totalSongs}`);
12 | console.log(`Total number of songs in the key of E: ${result.keyESongs}`);
13 | console.log(
14 | `Most common value in the "artist(s)_name" column: ${result.mostCommonValue} (${result.highestCount} occurrences)`
15 | );
16 | })
17 | .catch((error) => {
18 | console.error('Error:', error.message);
19 | });
20 |
--------------------------------------------------------------------------------
/submissions/czarjulius/jest.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | testEnvironment: 'node',
3 | };
4 |
--------------------------------------------------------------------------------
/submissions/czarjulius/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "czarjulius",
3 | "version": "1.0.0",
4 | "description": "A data processing file I/O script that reads data from a CSV file containing Spotify data and performs some analysis",
5 | "main": "index.js",
6 | "scripts": {
7 | "start": "node index.js",
8 | "test": "npx jest"
9 | },
10 | "keywords": [],
11 | "author": "Julius Ngwu",
12 | "license": "ISC",
13 | "dependencies": {
14 | "csv-parser": "^3.0.0"
15 | },
16 | "devDependencies": {
17 | "jest": "^29.7.0"
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/submissions/czarjulius/test/dummyData.csv:
--------------------------------------------------------------------------------
1 | track_name,artist(s)_name,artist_count,released_year,released_month,released_day,key
2 | Bye Bye,Marshmello,2,2022,10,14,D#
3 | Bye Byeq,julius,3,2021,13,19,E
4 | Bye Byeqk,julius,1,2021,11,13,E
--------------------------------------------------------------------------------
/submissions/dkouela/.gitignore:
--------------------------------------------------------------------------------
1 | .vscode/
2 | node_modules
--------------------------------------------------------------------------------
/submissions/dkouela/README.md:
--------------------------------------------------------------------------------
1 | **my GitHub is : https://github.com/dKouela
2 | **
3 |
4 | **Backend Language:** python
5 |
6 | **Prerequisites:** pandas and python
7 | the programm when run will try to install if not installed.
8 |
9 | **Create Your File I/O Project:** Python is the language used
10 |
11 | **CSV Parsing:** used Pandas librairei to read the csv file.
12 |
13 | **Data Processing:** the script is write in Python language
14 |
15 | **Run the script:** use your cmd or code reader and run : *python program.py*
16 |
17 | **License**
18 | This project is licensed under the MIT License - see the LICENSE file for details. You are free to modify and distribute the adapted code as needed for your own projects.
19 |
--------------------------------------------------------------------------------
/submissions/dotslashbit/main.py:
--------------------------------------------------------------------------------
1 | import pandas as pd
2 |
3 | # Load the CSV into a DataFrame
4 | df = pd.read_csv('spotify-2023.csv', encoding='latin1')
5 |
6 | # Task 1: Number of songs in the file
7 | num_songs = len(df)
8 |
9 |
10 | # Task 2: Number of songs in the key of E
11 | num_songs_in_key_e = len(df[df['key'] == 'E'])
12 |
13 | # Task 3: Count occurrences of artist name(s) and determine the most common value
14 | artist_counts = df['artist(s)_name'].value_counts()
15 | most_common_artist = artist_counts.idxmax()
16 | most_common_artist_count = artist_counts.max()
17 |
18 | # Outputs
19 | print(f'Total number of songs in the file: {num_songs}')
20 | print(f'Number of songs in the key of E: {num_songs_in_key_e}')
21 | print(f'Most common artist: {most_common_artist}, Occurrences: {most_common_artist_count}')
22 |
--------------------------------------------------------------------------------
/submissions/dotslashbit/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/dotslashbit/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/dsauce817/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/dsauce817/.DS_Store
--------------------------------------------------------------------------------
/submissions/ekady/index.js:
--------------------------------------------------------------------------------
1 | const countTotalSongs = require("./utils/countTotalSongs");
2 | const countSongsInKey = require("./utils/countSongsInKey");
3 | const findMostCommonValue = require("./utils/findMostCommonValue");
4 |
5 | // Usage
6 | const filePath = "spotify-2023.csv";
7 | countTotalSongs(filePath);
8 | countSongsInKey(filePath, "E");
9 | findMostCommonValue(filePath, "artist(s)_name");
10 |
--------------------------------------------------------------------------------
/submissions/ekady/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ekady",
3 | "version": "1.0.0",
4 | "description": "submission file io",
5 | "main": "index.js",
6 | "scripts": {
7 | "start": "node index.js",
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "author": "",
11 | "license": "ISC",
12 | "dependencies": {
13 | "csv-parser": "^3.0.0"
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/submissions/ekady/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/ekady/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/ekady/utils/countSongsInKey.js:
--------------------------------------------------------------------------------
1 | const fs = require("fs");
2 | const csv = require("csv-parser");
3 |
4 | // Function to count the number of songs in the key
5 | const countSongsInKey = (filePath, key = "E") => {
6 | let songsInKeyE = 0;
7 |
8 | fs.createReadStream(filePath)
9 | .pipe(csv())
10 | .on("data", (row) => {
11 | if (row.key === key) {
12 | songsInKeyE++;
13 | }
14 | })
15 | .on("end", () => {
16 | console.log(`Number of songs in the key of E: ${songsInKeyE}`);
17 | });
18 | };
19 |
20 | module.exports = countSongsInKey;
21 |
--------------------------------------------------------------------------------
/submissions/ekady/utils/countTotalSongs.js:
--------------------------------------------------------------------------------
1 | const fs = require("fs");
2 | const csv = require("csv-parser");
3 |
4 | // Function to count the number of songs in the file
5 | const countTotalSongs = (filePath) => {
6 | let totalSongs = 0;
7 |
8 | fs.createReadStream(filePath)
9 | .pipe(csv())
10 | .on("data", () => {
11 | totalSongs++;
12 | })
13 | .on("end", () => {
14 | console.log(`Total number of songs: ${totalSongs}`);
15 | });
16 | };
17 |
18 | module.exports = countTotalSongs;
19 |
--------------------------------------------------------------------------------
/submissions/elciosato/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "file-io",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "src/index.ts",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1",
8 | "file-io": "tsx src/index.ts",
9 | "build": "tsup src --out-dir build",
10 | "start": "node build/index.js"
11 | },
12 | "keywords": [],
13 | "author": "",
14 | "license": "ISC",
15 | "dependencies": {
16 | "csv-parse": "^5.5.0"
17 | },
18 | "devDependencies": {
19 | "@types/node": "^20.8.2",
20 | "tsup": "^7.2.0",
21 | "tsx": "^3.13.0",
22 | "typescript": "^5.2.2"
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/submissions/felixpherry_dart/.dart_tool/package_config.json:
--------------------------------------------------------------------------------
1 | {
2 | "configVersion": 2,
3 | "packages": [
4 | {
5 | "name": "csv",
6 | "rootUri": "file:///C:/Users/62895/AppData/Local/Pub/Cache/hosted/pub.dev/csv-5.1.0",
7 | "packageUri": "lib/",
8 | "languageVersion": "2.12"
9 | },
10 | {
11 | "name": "felixpherry_dart",
12 | "rootUri": "../",
13 | "packageUri": "lib/",
14 | "languageVersion": "3.1"
15 | }
16 | ],
17 | "generated": "2023-10-17T16:53:23.981291Z",
18 | "generator": "pub",
19 | "generatorVersion": "3.1.3"
20 | }
21 |
--------------------------------------------------------------------------------
/submissions/felixpherry_dart/pubspec.lock:
--------------------------------------------------------------------------------
1 | # Generated by pub
2 | # See https://dart.dev/tools/pub/glossary#lockfile
3 | packages:
4 | csv:
5 | dependency: "direct main"
6 | description:
7 | name: csv
8 | sha256: "142bdf2b24f4a49e35a0fc4398f21d861c4c0f9015e8054dcacd0bb8e23ee27d"
9 | url: "https://pub.dev"
10 | source: hosted
11 | version: "5.1.0"
12 | sdks:
13 | dart: ">=3.1.0 <4.0.0"
14 |
--------------------------------------------------------------------------------
/submissions/felixpherry_dart/pubspec.yaml:
--------------------------------------------------------------------------------
1 | name: felixpherry_dart
2 | environment:
3 | sdk: '^3.1.0'
4 | dependencies:
5 | csv: ^5.1.0
6 |
--------------------------------------------------------------------------------
/submissions/felixpherry_typescript/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
--------------------------------------------------------------------------------
/submissions/felixpherry_typescript/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "felixpherry",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "dev": "ts-node index.ts"
8 | },
9 | "author": "",
10 | "license": "ISC",
11 | "devDependencies": {
12 | "typescript": "^5.2.2"
13 | },
14 | "dependencies": {
15 | "@types/node": "^20.8.6",
16 | "csv-parser": "^3.0.0",
17 | "nodemon": "^3.0.1",
18 | "ts-node": "^10.9.1"
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/submissions/felixpherry_typescript/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/felixpherry_typescript/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/felixpherry_typescript/types.d.ts:
--------------------------------------------------------------------------------
1 | export interface Song {
2 | track_name: string;
3 | 'artist(s)_name': string;
4 | artist_count: string;
5 | released_year: string;
6 | released_month: string;
7 | released_day: string;
8 | in_spotify_playlists: string;
9 | in_spotify_charts: string;
10 | streams: string;
11 | in_apple_playlists: string;
12 | in_apple_charts: string;
13 | in_deezer_playlists: string;
14 | in_deezer_charts: string;
15 | in_shazam_charts: string;
16 | bpm: string;
17 | key: string;
18 | mode: string;
19 | 'danceability_%': string;
20 | 'valence_%': string;
21 | 'energy_%': string;
22 | 'acousticness_%': string;
23 | 'instrumentalness_%': string;
24 | 'liveness_%': string;
25 | 'speechiness_%': string;
26 | }
27 |
--------------------------------------------------------------------------------
/submissions/grandeurkoe/.gitignore:
--------------------------------------------------------------------------------
1 | .idea/
--------------------------------------------------------------------------------
/submissions/grandeurkoe/requirements.txt:
--------------------------------------------------------------------------------
1 | pandas~=2.0.3
--------------------------------------------------------------------------------
/submissions/haitruong-tech/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | **/.DS_Store
3 | *.DS_Store
4 | .DS_Store
5 |
--------------------------------------------------------------------------------
/submissions/haitruong-tech/README.md:
--------------------------------------------------------------------------------
1 | ### How to run
2 | 1. Download and setup Node.js
3 | 2. `cd` into `haitruong-tech` folder
4 | 3. Run `npm install`
5 | 4. After finishing the installation, run `npm start` or `node index.js` or `npm start ` or `node index.js `
6 |
--------------------------------------------------------------------------------
/submissions/haitruong-tech/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "haitruong-tech",
3 | "version": "1.0.0",
4 | "description": "ZTM file-io hacktoberfest",
5 | "main": "index.js",
6 | "scripts": {
7 | "start": "node index.js"
8 | },
9 | "keywords": [
10 | "hacktoberfest",
11 | "file-io",
12 | "ZTM"
13 | ],
14 | "author": "Hai Truong",
15 | "license": "ISC",
16 | "dependencies": {
17 | "csv-parser": "^3.0.0"
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/submissions/hanisntsolo-plain-script/README.md:
--------------------------------------------------------------------------------
1 | #If you want to run directly - use the following command :
2 |
3 | ```javac SpotifyDataParser.java && java SpotifyDataParser```
4 |
5 | Just make sure you are on the base directory hanintsolo-plain-script.
6 |
7 | or more simply just do :
8 |
9 | ``` java SpotifyDataParser.java ```
10 |
11 | Note : make sure that you have compiled the SpotifyDataParser.java using javac
--------------------------------------------------------------------------------
/submissions/hanisntsolo/csv-spotify-data-logger/.gitignore:
--------------------------------------------------------------------------------
1 | HELP.md
2 | !.mvn/wrapper/maven-wrapper.jar
3 | !**/src/main/**/target/
4 | !**/src/test/**/target/
5 |
6 | ### STS ###
7 | .apt_generated
8 | .classpath
9 | .factorypath
10 | .project
11 | .settings
12 | .springBeans
13 | .sts4-cache
14 |
15 | ### IntelliJ IDEA ###
16 | .idea
17 | *.iws
18 | *.iml
19 | *.ipr
20 |
21 | ### NetBeans ###
22 | /nbproject/private/
23 | /nbbuild/
24 | /dist/
25 | /nbdist/
26 | /.nb-gradle/
27 | build/
28 | !**/src/main/**/build/
29 | !**/src/test/**/build/
30 |
31 | ### VS Code ###
32 | .vscode/
33 |
--------------------------------------------------------------------------------
/submissions/hanisntsolo/csv-spotify-data-logger/.mvn/wrapper/maven-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/hanisntsolo/csv-spotify-data-logger/.mvn/wrapper/maven-wrapper.jar
--------------------------------------------------------------------------------
/submissions/hanisntsolo/csv-spotify-data-logger/.mvn/wrapper/maven-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.4/apache-maven-3.9.4-bin.zip
2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar
3 |
--------------------------------------------------------------------------------
/submissions/hanisntsolo/csv-spotify-data-logger/README.md:
--------------------------------------------------------------------------------
1 | #This is a spring boot app and goes by jar packaging.
2 |
3 | Go to your project application-properties and
4 | #/* You need to change the file path based on your system */
5 | path.to.csv=E:\\.code\\file-io\\submissions\\hanisntsolo\\csv-spotify-data-logger\\src\\main\\resources\\spotify-2023.csv
6 |
7 | #In a server like scenario the file path is in opt/ directory and is volume mapping is fixed most of the times.
8 |
9 | In order to run this app locally you need to fire command
10 |
11 | java -jar path/to/jar
12 |
13 | Example in the project base dir
14 |
15 | java -jar target/csv-spotify-data-logger-0.0.1-SNAPSHOT.jar
--------------------------------------------------------------------------------
/submissions/hanisntsolo/csv-spotify-data-logger/src/main/java/com/example/csvspotifydatalogger/CsvSpotifyDataLoggerApplication.java:
--------------------------------------------------------------------------------
1 | package com.example.csvspotifydatalogger;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 |
6 | @SpringBootApplication
7 | public class CsvSpotifyDataLoggerApplication {
8 |
9 | public static void main(String[] args) {
10 | SpringApplication.run(CsvSpotifyDataLoggerApplication.class, args);
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/submissions/hanisntsolo/csv-spotify-data-logger/src/main/java/com/example/csvspotifydatalogger/repository/SpotifyRepository.java:
--------------------------------------------------------------------------------
1 | package com.example.csvspotifydatalogger.repository;
2 |
3 | import com.example.csvspotifydatalogger.model.SpotifyTable;
4 | import org.springframework.data.jpa.repository.JpaRepository;
5 | import org.springframework.data.jpa.repository.Query;
6 | import org.springframework.data.repository.query.Param;
7 |
8 | public interface SpotifyRepository extends JpaRepository {
9 |
10 | @Query("SELECT COUNT(s) FROM SpotifyTable s WHERE s.key = :key")
11 | long countSongsByKey(@Param("key") String key);
12 | }
13 |
--------------------------------------------------------------------------------
/submissions/hanisntsolo/csv-spotify-data-logger/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 | server.port=8080
2 | #/* You need to change the file path based on your system */
3 | path.to.csv=E:\\.code\\file-io\\submissions\\hanisntsolo\\csv-spotify-data-logger\\src\\main\\resources\\spotify-2023.csv
4 | # H2 Database Configuration
5 | spring.datasource.url=jdbc:h2:mem:spotifytable
6 | spring.datasource.driverClassName=org.h2.Driver
7 | spring.datasource.username=sa
8 | spring.datasource.password=password
9 | spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
10 |
11 | # H2 Console Configuration (optional)
12 | spring.h2.console.enabled=true
13 | spring.h2.console.path=/h2-console
14 | spring.h2.console.settings.web-allow-others=true
15 | spring.h2.console.settings.trace=true
16 |
17 |
--------------------------------------------------------------------------------
/submissions/hanisntsolo/csv-spotify-data-logger/src/test/java/com/example/csvspotifydatalogger/CsvSpotifyDataLoggerApplicationTests.java:
--------------------------------------------------------------------------------
1 | package com.example.csvspotifydatalogger;
2 |
3 | import org.junit.jupiter.api.Test;
4 | import org.springframework.boot.test.context.SpringBootTest;
5 |
6 | @SpringBootTest
7 | class CsvSpotifyDataLoggerApplicationTests {
8 |
9 | @Test
10 | void contextLoads() {
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/submissions/hanisntsolo/csv-spotify-data-logger/target/classes/application.properties:
--------------------------------------------------------------------------------
1 | server.port=8080
2 | path.to.csv=E:\\.code\\file-io\\submissions\\hanisntsolo\\csv-spotify-data-logger\\src\\main\\resources\\spotify-2023.csv
3 | # H2 Database Configuration
4 | spring.datasource.url=jdbc:h2:mem:spotifytable
5 | spring.datasource.driverClassName=org.h2.Driver
6 | spring.datasource.username=sa
7 | spring.datasource.password=password
8 | spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
9 |
10 | # H2 Console Configuration (optional)
11 | spring.h2.console.enabled=true
12 | spring.h2.console.path=/h2-console
13 | spring.h2.console.settings.web-allow-others=true
14 | spring.h2.console.settings.trace=true
15 |
16 |
--------------------------------------------------------------------------------
/submissions/hanisntsolo/csv-spotify-data-logger/target/classes/com/example/csvspotifydatalogger/CsvSpotifyDataLoggerApplication.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/hanisntsolo/csv-spotify-data-logger/target/classes/com/example/csvspotifydatalogger/CsvSpotifyDataLoggerApplication.class
--------------------------------------------------------------------------------
/submissions/hanisntsolo/csv-spotify-data-logger/target/classes/com/example/csvspotifydatalogger/dataloader/LoadAndProcessCsv.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/hanisntsolo/csv-spotify-data-logger/target/classes/com/example/csvspotifydatalogger/dataloader/LoadAndProcessCsv.class
--------------------------------------------------------------------------------
/submissions/hanisntsolo/csv-spotify-data-logger/target/classes/com/example/csvspotifydatalogger/model/SpotifyTable.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/hanisntsolo/csv-spotify-data-logger/target/classes/com/example/csvspotifydatalogger/model/SpotifyTable.class
--------------------------------------------------------------------------------
/submissions/hanisntsolo/csv-spotify-data-logger/target/classes/com/example/csvspotifydatalogger/repository/SpotifyRepository.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/hanisntsolo/csv-spotify-data-logger/target/classes/com/example/csvspotifydatalogger/repository/SpotifyRepository.class
--------------------------------------------------------------------------------
/submissions/hanisntsolo/csv-spotify-data-logger/target/classes/com/example/csvspotifydatalogger/service/SpotifyService.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/hanisntsolo/csv-spotify-data-logger/target/classes/com/example/csvspotifydatalogger/service/SpotifyService.class
--------------------------------------------------------------------------------
/submissions/hanisntsolo/csv-spotify-data-logger/target/csv-spotify-data-logger-0.0.1-SNAPSHOT.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/hanisntsolo/csv-spotify-data-logger/target/csv-spotify-data-logger-0.0.1-SNAPSHOT.jar
--------------------------------------------------------------------------------
/submissions/hanisntsolo/csv-spotify-data-logger/target/csv-spotify-data-logger-0.0.1-SNAPSHOT.jar.original:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/hanisntsolo/csv-spotify-data-logger/target/csv-spotify-data-logger-0.0.1-SNAPSHOT.jar.original
--------------------------------------------------------------------------------
/submissions/hanisntsolo/csv-spotify-data-logger/target/maven-archiver/pom.properties:
--------------------------------------------------------------------------------
1 | artifactId=csv-spotify-data-logger
2 | groupId=com.example
3 | version=0.0.1-SNAPSHOT
4 |
--------------------------------------------------------------------------------
/submissions/hanisntsolo/csv-spotify-data-logger/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/hanisntsolo/csv-spotify-data-logger/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
--------------------------------------------------------------------------------
/submissions/hanisntsolo/csv-spotify-data-logger/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst:
--------------------------------------------------------------------------------
1 | E:\.code\file-io\submissions\hanisntsolo\csv-spotify-data-logger\src\main\java\com\example\csvspotifydatalogger\dataloader\LoadAndProcessCsv.java
2 | E:\.code\file-io\submissions\hanisntsolo\csv-spotify-data-logger\src\main\java\com\example\csvspotifydatalogger\model\SpotifyTable.java
3 | E:\.code\file-io\submissions\hanisntsolo\csv-spotify-data-logger\src\main\java\com\example\csvspotifydatalogger\CsvSpotifyDataLoggerApplication.java
4 | E:\.code\file-io\submissions\hanisntsolo\csv-spotify-data-logger\src\main\java\com\example\csvspotifydatalogger\service\SpotifyService.java
5 | E:\.code\file-io\submissions\hanisntsolo\csv-spotify-data-logger\src\main\java\com\example\csvspotifydatalogger\repository\SpotifyRepository.java
6 |
--------------------------------------------------------------------------------
/submissions/hanisntsolo/csv-spotify-data-logger/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst:
--------------------------------------------------------------------------------
1 | com\example\csvspotifydatalogger\CsvSpotifyDataLoggerApplicationTests.class
2 |
--------------------------------------------------------------------------------
/submissions/hanisntsolo/csv-spotify-data-logger/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst:
--------------------------------------------------------------------------------
1 | E:\.code\file-io\submissions\hanisntsolo\csv-spotify-data-logger\src\test\java\com\example\csvspotifydatalogger\CsvSpotifyDataLoggerApplicationTests.java
2 |
--------------------------------------------------------------------------------
/submissions/hanisntsolo/csv-spotify-data-logger/target/surefire-reports/2023-10-08T10-30-57_735.dumpstream:
--------------------------------------------------------------------------------
1 | # Created at 2023-10-08T10:30:58.458
2 | Boot Manifest-JAR contains absolute paths in classpath 'E:\.code\file-io\submissions\hanisntsolo\csv-spotify-data-logger\target\test-classes'
3 | Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
4 | 'other' has different root
5 |
6 |
--------------------------------------------------------------------------------
/submissions/hanisntsolo/csv-spotify-data-logger/target/surefire-reports/com.example.csvspotifydatalogger.CsvSpotifyDataLoggerApplicationTests.txt:
--------------------------------------------------------------------------------
1 | -------------------------------------------------------------------------------
2 | Test set: com.example.csvspotifydatalogger.CsvSpotifyDataLoggerApplicationTests
3 | -------------------------------------------------------------------------------
4 | Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 8.665 s - in com.example.csvspotifydatalogger.CsvSpotifyDataLoggerApplicationTests
5 |
--------------------------------------------------------------------------------
/submissions/hanisntsolo/csv-spotify-data-logger/target/test-classes/com/example/csvspotifydatalogger/CsvSpotifyDataLoggerApplicationTests.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/hanisntsolo/csv-spotify-data-logger/target/test-classes/com/example/csvspotifydatalogger/CsvSpotifyDataLoggerApplicationTests.class
--------------------------------------------------------------------------------
/submissions/igorTT/.gitignore:
--------------------------------------------------------------------------------
1 | /node_modules/
2 |
--------------------------------------------------------------------------------
/submissions/ishitva/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
--------------------------------------------------------------------------------
/submissions/ishitva/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ishitva",
3 | "version": "1.0.0",
4 | "lockfileVersion": 3,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "ishitva",
9 | "version": "1.0.0",
10 | "license": "ISC",
11 | "dependencies": {
12 | "csv-parse": "^5.5.1"
13 | }
14 | },
15 | "node_modules/csv-parse": {
16 | "version": "5.5.1",
17 | "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-5.5.1.tgz",
18 | "integrity": "sha512-A6DrzSnN7MuOjXOT2tbO08YyYnP9sNDn8zITMHbZN/qt3gUzdGcu3LacYKY7b3RHwKoPwkhhmLeP7SE30cRmgg=="
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/submissions/ishitva/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ishitva",
3 | "version": "1.0.0",
4 | "description": "simple spotify data parser",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "author": "ishitva",
10 | "license": "ISC",
11 | "dependencies": {
12 | "csv-parse": "^5.5.1"
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/submissions/jamesxleon/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/jamesxleon/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/jatanassian/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
--------------------------------------------------------------------------------
/submissions/jatanassian/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "file-io",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1",
8 | "start": "./node_modules/.bin/ts-node index.ts"
9 | },
10 | "keywords": [],
11 | "author": "jatanassian",
12 | "license": "ISC",
13 | "devDependencies": {
14 | "ts-node": "^10.9.1",
15 | "typescript": "^5.2.2"
16 | },
17 | "dependencies": {
18 | "csv-parse": "^5.5.0"
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/submissions/jayg2309/Result.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | Number of songs in the file: 953
4 | Number of songs in the key of E: 62
5 | Most common value: 34
--------------------------------------------------------------------------------
/submissions/jayg2309/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/jayg2309/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/jerome-simms/README.md:
--------------------------------------------------------------------------------
1 | # Spotify Data Logger
2 |
3 | ## Challenges Completed
4 | I have completed the following tasks:
5 | - Write a script to identify the number of songs in the file.
6 | - Write a script that identify the number of songs in the key of E.
7 | - Count the occurrences of values in a specified column (e.g., artist names) and determine the most common value.
8 |
9 | ## How to Run
10 | In order to run my solution, I am assuming a unix operating system or a system capable of running bash commands.
11 | I also assume that you have access to the `g++` command.
12 |
13 | The most simple way to run this program is to type the following in your terminal once you have navigated from the project root to the file-io/submissions/jerome-simms directory:
14 | ```bash
15 | g++ main.cpp SpotifyDataSolver.cpp
16 | ./a.out
17 | ```
--------------------------------------------------------------------------------
/submissions/jerome-simms/SpotifyDataSolver.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 | #include "rapidcsv.h"
5 |
6 | class SpotifyDataSolver
7 | {
8 | public:
9 | SpotifyDataSolver() = default;
10 | size_t get_song_count();
11 | size_t count_occurances(const std::string& column_name, const std::string& search_key);
12 | std::string get_most_common_in_column(const std::string& column_name);
13 |
14 | private:
15 | rapidcsv::Document doc{"spotify-2023.csv"};
16 | };
--------------------------------------------------------------------------------
/submissions/jerome-simms/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include "SpotifyDataSolver.h"
3 |
4 | int main()
5 | {
6 | SpotifyDataSolver solver{};
7 |
8 | // print out the total number of songs in the csv
9 | std::cout << "There are " << solver.get_song_count()
10 | << " somgs in the csv" << std::endl;
11 |
12 | // print out the number of songs in the key E
13 | std::cout << "There are " << solver.count_occurances("key", "E")
14 | << " songs in the key E" << std::endl;
15 |
16 | // finding the most common key in the dataset
17 | std::cout << "The most common key in the data is "
18 | << solver.get_most_common_in_column("key") << std::endl;
19 |
20 |
21 | return EXIT_SUCCESS;
22 | }
--------------------------------------------------------------------------------
/submissions/jerome-simms/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/jerome-simms/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/josemguerra/.gitignore:
--------------------------------------------------------------------------------
1 | # Dependency directories
2 | node_modules/
3 | jspm_packages/
4 | node_modules
5 |
6 | .vscode/*
7 | !.vscode/settings.json
8 | !.vscode/tasks.json
9 | !.vscode/launch.json
10 | !.vscode/extensions.json
11 | !.vscode/*.code-snippets
12 | # Local History for Visual Studio Code
13 | .history/
14 | # General
15 | **/.DS_Store
16 | *.DS_Store
17 | .DS_Store
18 | # Optional npm cache directory
19 | .npm
20 | # Icon must end with two \r
21 | Icon
22 | # Thumbnails
23 | ._*
24 |
--------------------------------------------------------------------------------
/submissions/josemguerra/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "file-io",
3 | "version": "1.0.0",
4 | "lockfileVersion": 3,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "file-io",
9 | "version": "1.0.0",
10 | "license": "ISC",
11 | "dependencies": {
12 | "papaparse": "^5.4.1"
13 | }
14 | },
15 | "node_modules/papaparse": {
16 | "version": "5.4.1",
17 | "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.4.1.tgz",
18 | "integrity": "sha512-HipMsgJkZu8br23pW15uvo6sib6wne/4woLZPlFf3rpDyMe9ywEXUsuD7+6K9PRkJlVT51j/sCOYDKGGS3ZJrw=="
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/submissions/josemguerra/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "file-io",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "author": "",
10 | "license": "ISC",
11 | "dependencies": {
12 | "papaparse": "^5.4.1"
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/submissions/josewebdev2000/.gitignore:
--------------------------------------------------------------------------------
1 | file_io_venv
2 |
--------------------------------------------------------------------------------
/submissions/josewebdev2000/requirements.txt:
--------------------------------------------------------------------------------
1 | numpy==1.26.0
2 | pandas==2.1.1
3 | python-dateutil==2.8.2
4 | pytz==2023.3.post1
5 | six==1.16.0
6 | tzdata==2023.3
7 |
--------------------------------------------------------------------------------
/submissions/josiah34/.gitignore:
--------------------------------------------------------------------------------
1 | .venv
2 |
3 | .ipynb_checkpoints
4 |
--------------------------------------------------------------------------------
/submissions/jsalaat/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "jsalaat",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "author": "",
10 | "license": "ISC",
11 | "dependencies": {
12 | "csv-parser": "^3.0.0"
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/submissions/kafkaidk/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/kafkaidk/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/khrisdaniels/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
--------------------------------------------------------------------------------
/submissions/khrisdaniels/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "khrisdaniels-io",
3 | "version": "1.0.0",
4 | "lockfileVersion": 3,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "khrisdaniels-io",
9 | "version": "1.0.0",
10 | "license": "ISC",
11 | "dependencies": {
12 | "papaparse": "^5.4.1"
13 | }
14 | },
15 | "node_modules/papaparse": {
16 | "version": "5.4.1",
17 | "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.4.1.tgz",
18 | "integrity": "sha512-HipMsgJkZu8br23pW15uvo6sib6wne/4woLZPlFf3rpDyMe9ywEXUsuD7+6K9PRkJlVT51j/sCOYDKGGS3ZJrw=="
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/submissions/khrisdaniels/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "khrisdaniels-io",
3 | "author": "khrisdaniels",
4 | "version": "1.0.0",
5 | "description": "Spotify CSV Parser using Papaparse",
6 | "main": "script.js",
7 | "license": "ISC",
8 | "dependencies": {
9 | "papaparse": "^5.4.1"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/submissions/khrisdaniels/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/khrisdaniels/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/krrahul23/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
--------------------------------------------------------------------------------
/submissions/krrahul23/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "krrahul23",
3 | "version": "1.0.0",
4 | "lockfileVersion": 3,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "krrahul23",
9 | "version": "1.0.0",
10 | "license": "ISC",
11 | "dependencies": {
12 | "csv-parse": "^5.5.0"
13 | }
14 | },
15 | "node_modules/csv-parse": {
16 | "version": "5.5.0",
17 | "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-5.5.0.tgz",
18 | "integrity": "sha512-RxruSK3M4XgzcD7Trm2wEN+SJ26ChIb903+IWxNOcB5q4jT2Cs+hFr6QP39J05EohshRFEvyzEBoZ/466S2sbw=="
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/submissions/krrahul23/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "krrahul23",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "author": "",
10 | "license": "ISC",
11 | "dependencies": {
12 | "csv-parse": "^5.5.0"
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/submissions/kuntal0901/readme.md:
--------------------------------------------------------------------------------
1 | # A Spotify Data Logger
2 |
3 | This Python script is designed to process Spotify data from a CSV file, providing valuable insights about the songs and artists. It accomplishes the following tasks:
4 |
5 | - Identifies the total number of songs in the CSV file.
6 | - Counts the number of songs in the key of E.
7 | - Analyzes a specified column (e.g., artist names) to determine the most common value.
8 |
9 |
10 | ## Prerequisites
11 | Install latest version of python3 to eun this project.
12 |
13 | ## Setting up
14 | Fork the project and clone it into your local machine
15 |
16 |
17 | Switch to project directory,
18 | ```bash
19 | cd submissions/kuntal0901
20 | ```
21 |
22 | Run the following command
23 | ```bash
24 | python3 challenge.py
25 | ```
26 |
--------------------------------------------------------------------------------
/submissions/kuntal0901/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/kuntal0901/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/l-white/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "file-io",
3 | "version": "1.0.0",
4 | "lockfileVersion": 3,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "file-io",
9 | "version": "1.0.0",
10 | "license": "ISC",
11 | "dependencies": {
12 | "csv-parse": "^5.5.0"
13 | }
14 | },
15 | "node_modules/csv-parse": {
16 | "version": "5.5.0",
17 | "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-5.5.0.tgz",
18 | "integrity": "sha512-RxruSK3M4XgzcD7Trm2wEN+SJ26ChIb903+IWxNOcB5q4jT2Cs+hFr6QP39J05EohshRFEvyzEBoZ/466S2sbw=="
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/submissions/l-white/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "file-io",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "keywords": [],
10 | "author": "",
11 | "license": "ISC",
12 | "dependencies": {
13 | "csv-parse": "^5.5.0"
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/submissions/lucileTech/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "lucileTech",
3 | "lockfileVersion": 3,
4 | "requires": true,
5 | "packages": {
6 | "": {
7 | "dependencies": {
8 | "papaparse": "^5.4.1"
9 | }
10 | },
11 | "node_modules/papaparse": {
12 | "version": "5.4.1",
13 | "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.4.1.tgz",
14 | "integrity": "sha512-HipMsgJkZu8br23pW15uvo6sib6wne/4woLZPlFf3rpDyMe9ywEXUsuD7+6K9PRkJlVT51j/sCOYDKGGS3ZJrw=="
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/submissions/lucileTech/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "papaparse": "^5.4.1"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/submissions/lucileTech/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/lucileTech/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/majidshakeelshawl/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/majidshakeelshawl/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/mariapetra/new.csv:
--------------------------------------------------------------------------------
1 | extracted data from spotify.csv
2 | There are 954 songs in the file
3 | there are 62 songs in the key of E
4 | "Most common song: [('Flowers', 2)]."
5 | "Most common key: [('C#', 120)]."
6 | "Most common artist name: [('Taylor Swift', 34)]."
7 |
--------------------------------------------------------------------------------
/submissions/maxie7/elixir/.formatter.exs:
--------------------------------------------------------------------------------
1 | # Used by "mix format"
2 | [
3 | inputs: ["{mix,.formatter}.exs", "{config,lib,test}/**/*.{ex,exs}"]
4 | ]
5 |
--------------------------------------------------------------------------------
/submissions/maxie7/elixir/.gitignore:
--------------------------------------------------------------------------------
1 | # The directory Mix will write compiled artifacts to.
2 | /_build/
3 |
4 | # If you run "mix test --cover", coverage assets end up here.
5 | /cover/
6 |
7 | # The directory Mix downloads your dependencies sources to.
8 | /deps/
9 |
10 | # Where third-party dependencies like ExDoc output generated docs.
11 | /doc/
12 |
13 | # Ignore .fetch files in case you like to edit your project deps locally.
14 | /.fetch
15 |
16 | # If the VM crashes, it generates a dump, let's ignore it too.
17 | erl_crash.dump
18 |
19 | # Also ignore archive artifacts (built via "mix archive.build").
20 | *.ez
21 |
22 | # Ignore package tarball (built via "mix hex.build").
23 | data_logger-*.tar
24 |
25 | # Temporary files, for example, from tests.
26 | /tmp/
27 |
--------------------------------------------------------------------------------
/submissions/maxie7/elixir/README.md:
--------------------------------------------------------------------------------
1 | # DataLogger
2 |
3 | This is a solution for Hacktoberfest 2023
4 |
5 | ## Installation
6 |
7 | 0. You need to have elixir installed in your system.
8 |
9 | 1. Get to the folder `submissions/maxie7/elixir/`
10 |
11 | ```elixir
12 | mix deps.get
13 | ```
14 |
15 | 2. Enter in iex `iex -S mix`
16 | 3. Run the `output_the_results` function from `DataLogger` module:
17 | ```elixir
18 | DataLogger.output_the_results
19 | ```
20 | The results:
21 |
22 | 
23 |
--------------------------------------------------------------------------------
/submissions/maxie7/elixir/mix.exs:
--------------------------------------------------------------------------------
1 | defmodule DataLogger.MixProject do
2 | use Mix.Project
3 |
4 | def project do
5 | [
6 | app: :data_logger,
7 | version: "0.1.0",
8 | elixir: "~> 1.14",
9 | start_permanent: Mix.env() == :prod,
10 | deps: deps()
11 | ]
12 | end
13 |
14 | # Run "mix help compile.app" to learn about applications.
15 | def application do
16 | [
17 | extra_applications: [:logger]
18 | ]
19 | end
20 |
21 | # Run "mix help deps" to learn about dependencies.
22 | defp deps do
23 | [
24 | # {:dep_from_hexpm, "~> 0.3.0"},
25 | # {:dep_from_git, git: "https://github.com/elixir-lang/my_dep.git", tag: "0.1.0"}
26 | ]
27 | end
28 | end
29 |
--------------------------------------------------------------------------------
/submissions/maxie7/ruby/README.md:
--------------------------------------------------------------------------------
1 | # DataLogger
2 |
3 | This is a solution for Hacktoberfest 2023 in Ruby (v 3.2.1)
4 |
5 | ## Installation
6 |
7 | 0. You should have Ruby installed in your system
8 |
9 | 1. Get to the folder `submissions/maxie7/ruby/` in the terminal
10 |
11 | 2. Run this:
12 |
13 | ```ruby
14 | ruby spotify_data_logger.rb
15 | ```
16 |
17 | 3. Get the results
18 | 
19 |
--------------------------------------------------------------------------------
/submissions/maxie7/typescript/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
--------------------------------------------------------------------------------
/submissions/maxie7/typescript/README.md:
--------------------------------------------------------------------------------
1 | # DataLogger
2 |
3 | This is a solution for Hacktoberfest 2023 in TypeScript
4 |
5 | ## Installation
6 |
7 | 1. Get to the folder `submissions/maxie7/typescript/` and install dependencies:
8 |
9 | ```
10 | npm install
11 | ```
12 |
13 | 2. Run this
14 |
15 | ```
16 | npm start
17 | ```
18 |
19 | 3. See the results
20 |
21 | 
22 |
--------------------------------------------------------------------------------
/submissions/maxie7/typescript/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "file-io",
3 | "version": "1.0.0",
4 | "description": "hacktoberfest-2023",
5 | "main": "src/index.ts",
6 | "scripts": {
7 | "start": "./node_modules/.bin/ts-node index.ts",
8 | "tsc": "tsc",
9 | "test": "echo \"Error: no test specified\" && exit 1"
10 | },
11 | "author": "maxie7",
12 | "license": "ISC",
13 | "devDependencies": {
14 | "@types/node": "^20.8.6",
15 | "ts-node": "^10.9.1",
16 | "typescript": "^5.2.2"
17 | },
18 | "dependencies": {
19 | "csv-parser": "^3.0.0"
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/submissions/maxie7/typescript/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es2016", /* Set the JavaScript language version for emitted JavaScript and include */
4 | "module": "commonjs", /* Specify what module code is generated. */
5 | "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */
6 | "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */
7 | "strict": true, /* Enable all strict type-checking options. */
8 | "skipLibCheck": true /* Skip type checking all .d.ts files. */
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/submissions/mdtausifiqbal/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
--------------------------------------------------------------------------------
/submissions/mdtausifiqbal/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "mdtausifiqbal",
3 | "version": "1.0.0",
4 | "lockfileVersion": 3,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "mdtausifiqbal",
9 | "version": "1.0.0",
10 | "license": "ISC",
11 | "dependencies": {
12 | "csv-parse": "^5.5.0"
13 | }
14 | },
15 | "node_modules/csv-parse": {
16 | "version": "5.5.0",
17 | "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-5.5.0.tgz",
18 | "integrity": "sha512-RxruSK3M4XgzcD7Trm2wEN+SJ26ChIb903+IWxNOcB5q4jT2Cs+hFr6QP39J05EohshRFEvyzEBoZ/466S2sbw=="
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/submissions/mdtausifiqbal/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "mdtausifiqbal",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "start": "node index.js"
8 | },
9 | "keywords": [],
10 | "author": "",
11 | "license": "ISC",
12 | "dependencies": {
13 | "csv-parse": "^5.5.0"
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/submissions/milesjorg/README.md:
--------------------------------------------------------------------------------
1 | To Run:
2 | 1. cd {base_path}\file-io\submissions\milesjorg
3 | 2. run command "python solution.py"
4 | 3. You can also open the solution.py file to change desired parameters like column and key
--------------------------------------------------------------------------------
/submissions/milesjorg/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/milesjorg/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/mishc/__pycache__/analyse.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/mishc/__pycache__/analyse.cpython-311.pyc
--------------------------------------------------------------------------------
/submissions/mishc/__pycache__/delete_double.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/mishc/__pycache__/delete_double.cpython-311.pyc
--------------------------------------------------------------------------------
/submissions/mishc/__pycache__/delete_double_rows.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/mishc/__pycache__/delete_double_rows.cpython-311.pyc
--------------------------------------------------------------------------------
/submissions/mishc/delete_double_rows.py:
--------------------------------------------------------------------------------
1 | def delete_double_rows(csvObject):
2 |
3 | unique_lines = []
4 | encountered_lines = set()
5 |
6 | for row in csvObject:
7 | row_tuple = tuple(row)
8 |
9 | if row_tuple not in encountered_lines:
10 | unique_lines.append(row)
11 | encountered_lines.add(row_tuple)
12 | return unique_lines
--------------------------------------------------------------------------------
/submissions/mmaksi/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "mmaksi",
3 | "version": "1.0.0",
4 | "description": "Node.js solution for Hacktoberfest 2023",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "keywords": [],
10 | "author": "Mark Maksi",
11 | "license": "ISC",
12 | "dependencies": {
13 | "csv-parse": "^5.5.1",
14 | "csv-parser": "^3.0.0"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/submissions/mmaksi/utils/csv.js:
--------------------------------------------------------------------------------
1 | function findKeyWithHighestValue(obj) {
2 | let highestKey = null;
3 | let highestValue = -Infinity;
4 |
5 | for (const key in obj) {
6 | if (obj.hasOwnProperty(key) && typeof obj[key] === "number") {
7 | if (obj[key] > highestValue) {
8 | highestValue = obj[key];
9 | highestKey = key;
10 | }
11 | }
12 | }
13 |
14 | return highestKey;
15 | }
16 |
17 | module.exports = findKeyWithHighestValue;
18 |
--------------------------------------------------------------------------------
/submissions/mohamedabomosallam/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "mohamedabomosallam",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "author": "",
10 | "license": "ISC",
11 | "devDependencies": {
12 | "@types/node": "^20.8.7",
13 | "typescript": "^5.2.2"
14 | },
15 | "dependencies": {
16 | "papaparse": "^5.4.1"
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/submissions/mohamedabomosallam/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/mohamedabomosallam/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/mohdUsman-6508/SongCounter.java:
--------------------------------------------------------------------------------
1 |
2 |
3 | import java.io.BufferedReader;
4 | import java.io.FileReader;
5 | import java.io.IOException;
6 |
7 | public class SongCounter {
8 | public static void main(String[] args) {
9 | String file = "spotify-2023.csv";
10 | int songCount = 0; // Initialize the count to 0
11 | try (BufferedReader br = new BufferedReader(new FileReader(file))) {
12 | // Read the file line by line
13 | while (br.readLine() != null) {
14 | songCount++;
15 | }
16 | System.out.println("Total number of songs: " + songCount);
17 | } catch (IOException e) {
18 | // Handle any exceptions that may occur during file reading
19 | e.printStackTrace();
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/submissions/mohdUsman-6508/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/mohdUsman-6508/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/mossi4476/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
--------------------------------------------------------------------------------
/submissions/mossi4476/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "y",
3 | "version": "1.0.0",
4 | "lockfileVersion": 3,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "y",
9 | "version": "1.0.0",
10 | "license": "ISC",
11 | "dependencies": {
12 | "papaparse": "^5.4.1"
13 | }
14 | },
15 | "node_modules/papaparse": {
16 | "version": "5.4.1",
17 | "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.4.1.tgz",
18 | "integrity": "sha512-HipMsgJkZu8br23pW15uvo6sib6wne/4woLZPlFf3rpDyMe9ywEXUsuD7+6K9PRkJlVT51j/sCOYDKGGS3ZJrw=="
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/submissions/mossi4476/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "y",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "author": "",
10 | "license": "ISC",
11 | "dependencies": {
12 | "papaparse": "^5.4.1"
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/submissions/muhd-kifayath/main.py:
--------------------------------------------------------------------------------
1 | import pandas as pd
2 | df = pd.read_csv("./spotify-2023.csv")
3 |
4 | # Challenge 1: Identify the number of songs in the file
5 | print("Total number of songs:", len(df['track_name']))
6 | print("Number of unique songs:", len(pd.unique(df['track_name'])))
7 |
8 | # Challenge 2: Identify the number of songs in the key of E
9 | print("The number of songs in the key of E:", len(df[df['key']=='E']))
10 |
11 | # Challenge 3: Count the occurrences of artist names and find the most common value
12 | artists = df['artist(s)_name'].mode().to_list()
13 | print("Common artist(s):")
14 | for i in artists:
15 | print(i)
16 |
17 |
--------------------------------------------------------------------------------
/submissions/muhd-kifayath/requirements.txt:
--------------------------------------------------------------------------------
1 | pandas==2.1.0
--------------------------------------------------------------------------------
/submissions/neha3423/index.py:
--------------------------------------------------------------------------------
1 | import pandas as pd
2 |
3 | df=pd.read_csv('spotify-2023.csv', encoding='latin-1')
4 |
5 | # Number of songs in csv
6 | def number_of_songs(df):
7 | return df.shape[0]
8 |
9 | #Number of songs in the key of E
10 | def songs_in_key_of_E(df):
11 | songs=df[df['key']=='E']
12 | return len(songs)
13 |
14 | #Determine the most common artist
15 | def most_common_artist(df):
16 | count= df['artist(s)_name'].mode().tolist()
17 | return count
18 |
19 | print("The total number of songs in the playlist:",number_of_songs(df))
20 | print("The number of songs in the key of E:",songs_in_key_of_E(df))
21 | print("The most common artist in the playlist:",most_common_artist(df))
--------------------------------------------------------------------------------
/submissions/ornitcg/SongCounter.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/ornitcg/SongCounter.class
--------------------------------------------------------------------------------
/submissions/ornitcg/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/ornitcg/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/pawaspy/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/pawaspy/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/rainbowchook/.gitignore:
--------------------------------------------------------------------------------
1 | /node_modules
2 | /build
3 | *old*
4 | **/backup
5 | *report-*
--------------------------------------------------------------------------------
/submissions/rainbowchook/nodemon.json:
--------------------------------------------------------------------------------
1 | {
2 | "ignore": ["**/*.test.ts", "**/*.spec.ts", "node_modules"],
3 | "watch": ["src/**"],
4 | "exec": "npm start",
5 | "ext": "ts, json"
6 | }
--------------------------------------------------------------------------------
/submissions/rainbowchook/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "rainbowchook",
3 | "version": "1.0.0",
4 | "description": "CSV File parser for Spotify Data",
5 | "main": "index.js",
6 | "scripts": {
7 | "build": "tsc -w",
8 | "dev": "nodemon",
9 | "start": "ts-node src/index.ts"
10 | },
11 | "keywords": [],
12 | "author": "",
13 | "license": "ISC",
14 | "devDependencies": {
15 | "nodemon": "^3.0.1",
16 | "ts-node": "^10.9.1",
17 | "typescript": "^5.2.2"
18 | },
19 | "dependencies": {
20 | "@types/node": "^20.8.2"
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/submissions/rainbowchook/src/lib/analysers/Analyser.ts:
--------------------------------------------------------------------------------
1 | export interface Analyser {
2 | run(arr: T[]): string
3 | }
4 |
--------------------------------------------------------------------------------
/submissions/rainbowchook/src/lib/analysers/ColumnValueCount.ts:
--------------------------------------------------------------------------------
1 | import { Analyser } from "./Analyser";
2 | import type { RowItem } from "../readers/RowItem";
3 |
4 | export class ColumnValueCount implements Analyser {
5 | constructor(public column: string, public value: string) {}
6 |
7 | countMatchingRows = (
8 | header: string,
9 | value: string,
10 | data: RowItem[]
11 | ): number => {
12 | let sum = data.reduce((acc, currentRow) => {
13 | if (currentRow[header] === value) {
14 | acc++
15 | }
16 | return acc
17 | }, 0)
18 | return sum
19 | }
20 |
21 | run(tracks: RowItem[]) {
22 | const count = tracks ? this.countMatchingRows(this.column, this.value, tracks) : 0
23 | return `The number of songs in column "${this.column}" with value "${this.value}" is ${count}.`
24 | }
25 | }
--------------------------------------------------------------------------------
/submissions/rainbowchook/src/lib/analysers/CountAnalyser.ts:
--------------------------------------------------------------------------------
1 | import { Analyser } from './Analyser'
2 | import type { RowItem } from '../readers/RowItem'
3 |
4 | export class CountAnalyser implements Analyser {
5 | constructor() {}
6 |
7 | countRows = (rows: RowItem[]): number => {
8 | return rows.length
9 | }
10 |
11 | run(tracks: RowItem[]): string {
12 | const trackCount = tracks ? this.countRows(tracks) : 0
13 | return `The number of songs in the file is ${trackCount}.`
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/submissions/rainbowchook/src/lib/analysers/ValuesArrayType.ts:
--------------------------------------------------------------------------------
1 | export type ValuesArrayType = {
2 | value: string
3 | count: number
4 | }
--------------------------------------------------------------------------------
/submissions/rainbowchook/src/lib/readers/DataReader.ts:
--------------------------------------------------------------------------------
1 | export interface DataReader {
2 | read(headers?: string[]): void;
3 | data: string[][] | null;
4 | headers: string[];
5 | }
--------------------------------------------------------------------------------
/submissions/rainbowchook/src/lib/readers/RowItem.ts:
--------------------------------------------------------------------------------
1 | export type RowItem = {
2 | [key: string]: string
3 | }
--------------------------------------------------------------------------------
/submissions/rainbowchook/src/lib/reporters/ConsoleReporter.ts:
--------------------------------------------------------------------------------
1 | import { Reporter } from "./Reporter";
2 |
3 | export class ConsoleReport implements Reporter {
4 | print(report: string): void {
5 | console.log(report)
6 | }
7 | }
--------------------------------------------------------------------------------
/submissions/rainbowchook/src/lib/reporters/Reporter.ts:
--------------------------------------------------------------------------------
1 | export interface Reporter {
2 | print(report: string): void
3 | }
4 |
--------------------------------------------------------------------------------
/submissions/rainbowchook/src/lib/utils.ts:
--------------------------------------------------------------------------------
1 | export const getDate = (): string => {
2 | const dateObj = new Date()
3 | const day = dateObj.getDate()
4 | const month = dateObj.getMonth()
5 | const year = dateObj.getFullYear()
6 |
7 | return `${day < 10 ? '0'.concat(String(day)): day}${month < 10 ? '0'.concat(String(month)): month}${year}`
8 | }
--------------------------------------------------------------------------------
/submissions/runtimeerror11/file.js:
--------------------------------------------------------------------------------
1 | const csv = require('csv-parser')
2 | const fs = require('fs')
3 |
4 | count1=0//Store the count of total songs
5 | count2=0//stores the count of songs with key 'E'
6 |
7 | //solution for challenge 1
8 | function fun1(data){
9 | count1++
10 | }
11 |
12 | //solution for challenge 2
13 | function fun2(data){
14 | if(data['key']=='E'){
15 | count2++
16 | }
17 | }
18 |
19 | fs.createReadStream('spotify-2023.csv')
20 | .pipe(csv())
21 | .on('data', (data) =>{
22 | fun1(data)
23 | fun2(data)
24 | })
25 | .on('end', () => {
26 | console.log("Results-")
27 | console.log(`Challenge 1 \nTotal Songs = ${count1}`)
28 | console.log(`Challenge 2 \nSongs with key E = ${count2} `)
29 | console.log("\nConslusion-")
30 | console.log(`There are total ${count1} number of songs and ${count2} songs with Key 'E'.\n`)
31 | });
--------------------------------------------------------------------------------
/submissions/runtimeerror11/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "csv_pr",
3 | "version": "1.0.0",
4 | "description": "\"Code for hacktoberfestpr\"",
5 | "main": "file.js",
6 |
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "author": "Suparshwa Patil",
11 | "license": "ISC",
12 | "dependencies": {
13 | "csv-parser": "^3.0.0",
14 | "fs": "^0.0.1-security"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/submissions/runtimeerror11/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/runtimeerror11/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/sanusisusi/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "file-io",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "challenge1_script.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "keywords": [],
10 | "author": "Sanusi",
11 | "license": "ISC",
12 | "dependencies": {
13 | "csv-parser": "^3.0.0"
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/submissions/sanusisusi/readme.md:
--------------------------------------------------------------------------------
1 | // dependency
2 | pip install pandas
3 |
4 | // to run the project
5 | python spotify_analysis.py
6 |
7 | // The project consists of a script that reads data from a CSV file (spotify-2023.csv)
8 | 1. identify the number of songs in the file.
9 | 2. identify the number of songs in the key of E.
10 | 3. Count the occurrences of values in a specified column (e.g., artist names) and determine the most common value.
11 |
--------------------------------------------------------------------------------
/submissions/skhalar_java/README.me:
--------------------------------------------------------------------------------
1 | # Spotify Analysis in Java
2 |
3 | ## How to Run
4 |
5 | 1. Install JDK 21
6 | 2. Run `java SpotifyAnalysis.java /path/to/spotify/csv` from the src folder
--------------------------------------------------------------------------------
/submissions/skhalar_rust/.gitignore:
--------------------------------------------------------------------------------
1 | target/
2 |
--------------------------------------------------------------------------------
/submissions/skhalar_rust/Cargo.toml:
--------------------------------------------------------------------------------
1 | [package]
2 | name = "skhalar_rust"
3 | version = "0.1.0"
4 | edition = "2021"
5 |
6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
7 |
8 | [dependencies]
9 | csv = "1.3.0"
10 |
--------------------------------------------------------------------------------
/submissions/skhalar_rust/README.md:
--------------------------------------------------------------------------------
1 | # Spotify Analysis in Rust
2 |
3 | ## How to Run
4 |
5 | 1. Install latest Rust Lang
6 | 2. Run `cargo run -- /path/to/spotify/csv`
7 |
8 | l-white edit:
9 | To run from current directory:
10 | cargo run -- ./spotify-2023.csv
11 |
--------------------------------------------------------------------------------
/submissions/skhalar_rust_no_external_crate/.gitignore:
--------------------------------------------------------------------------------
1 | target/
2 | .idea
3 |
--------------------------------------------------------------------------------
/submissions/skhalar_rust_no_external_crate/Cargo.toml:
--------------------------------------------------------------------------------
1 | [package]
2 | name = "skhalar_rust_no_external_crate"
3 | version = "0.1.0"
4 | edition = "2021"
5 |
6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
7 |
8 | [dependencies]
9 | regex = "1.9.6"
10 |
--------------------------------------------------------------------------------
/submissions/skhalar_rust_no_external_crate/README.md:
--------------------------------------------------------------------------------
1 | # Spotify Analysis in Rust
2 |
3 | ## How to Run
4 |
5 | 1. Install latest Rust Lang
6 | 2. Run `cargo run -- /path/to/spotify/csv`
7 |
8 | l-white edit:
9 | To run from current directory:
10 | cargo run -- ./spotify-2023.csv
11 |
--------------------------------------------------------------------------------
/submissions/smokeraven667/README.md:
--------------------------------------------------------------------------------
1 | # from root file-io run `python .\submissions\smokeraven667\spoting-spotify.py`
2 |
--------------------------------------------------------------------------------
/submissions/smolsuryansh/MySolution.java:
--------------------------------------------------------------------------------
1 | import java.io.FileReader;
2 | import java.io.BufferedReader;
3 | import java.io.IOException;
4 |
5 | public class MySolution{
6 | public static void main(String[] args) {
7 | String filecsv = "spotifycsvfile.csv";
8 | String line;
9 | int songs = -1;
10 | try(BufferedReader br = new BufferedReader(new FileReader(filecsv))){
11 | while((line = br.readLine()) != null){
12 | songs+=1;
13 | }
14 | System.out.println("Total number of songs are: " + songs);
15 | }
16 | catch(Exception e){
17 | System.out.println(e);
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/submissions/smolsuryansh/ReadMe.md:
--------------------------------------------------------------------------------
1 | To run the the file:
2 | - Locate to file-io\submissions\smolsuryansh
3 | - Then type in java MySolution.java in the terminal
--------------------------------------------------------------------------------
/submissions/smolsuryansh/spotifycsvfile.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/smolsuryansh/spotifycsvfile.csv
--------------------------------------------------------------------------------
/submissions/sufyanhabib/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
--------------------------------------------------------------------------------
/submissions/sufyanhabib/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "sufyanhabib",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "author": "@sufyanhabib",
10 | "license": "ISC",
11 | "dependencies": {
12 | "fast-csv": "^4.3.6",
13 | "papaparse": "^5.4.1"
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/submissions/sufyanhabib/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/sufyanhabib/spotify-2023.csv
--------------------------------------------------------------------------------
/submissions/swarnendu0123/requirements.txt:
--------------------------------------------------------------------------------
1 | pandas==2.1.1
--------------------------------------------------------------------------------
/submissions/techfreakSahil/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/techfreakSahil/Solution.class
--------------------------------------------------------------------------------
/submissions/techfreakSahil/Solution.java:
--------------------------------------------------------------------------------
1 | import java.io.BufferedReader;
2 | import java.io.FileReader;
3 | import java.io.IOException;
4 |
5 | public class Solution{
6 | public static void main(String[] args) {
7 | String file = "spotify-2023.csv";
8 | int songs = -1; //first line includes the content
9 | String line;
10 | try(BufferedReader br = new BufferedReader(new FileReader(file))){
11 | while((line = br.readLine()) != null){
12 | songs+=1;
13 | }
14 | System.out.println("Total number of songs are: " + songs);
15 | }
16 | catch(Exception e){
17 | System.out.println(e);
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/submissions/timDehof/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
--------------------------------------------------------------------------------
/submissions/timDehof/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "timdehof",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "keywords": [],
10 | "author": "",
11 | "license": "ISC",
12 | "dependencies": {
13 | "csv-parser": "^3.0.0"
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/submissions/vamshidhar-thonti/.gitignore:
--------------------------------------------------------------------------------
1 | .venv
--------------------------------------------------------------------------------
/submissions/vamshidhar-thonti/main.sh:
--------------------------------------------------------------------------------
1 | #! /bin/bash
2 |
3 | ###############################
4 | # Author: Vamshidhar Thonti #
5 | # #
6 | # Execute cmd: bash ./main.sh #
7 | ###############################
8 |
9 | TOTAL_TRACKS=$(cat spotify-2023.csv | cut -d ',' -f1 | sed 1,1d | wc -l)
10 | echo "Total number of tracks are ${TOTAL_TRACKS}."
11 |
--------------------------------------------------------------------------------
/submissions/wizozheir-file-io/README.md:
--------------------------------------------------------------------------------
1 | # Spotify Data Logger
2 |
3 |
4 | Data processing file I/O script that reads data from a CSV file containing Spotify data and performs some analysis to complete some challenges outlined below.
5 |
6 | ### Challenges
7 | 1. Write a script to identify the number of songs in the file.
8 | 2. Write a script that identify the number of songs in the key of E.
9 | 3. Count the occurrences of values in a specified column (e.g., artist names) and determine the most common value.
10 |
11 | ### Tech Stack
12 | - Java
13 | - Gradle
14 | - Lombok
15 | - OpenCSV lib
16 |
17 |
--------------------------------------------------------------------------------
/submissions/wizozheir-file-io/app/build.gradle:
--------------------------------------------------------------------------------
1 | plugins {
2 | id 'application'
3 | id "io.freefair.lombok" version "8.4"
4 | }
5 |
6 | repositories {
7 | mavenCentral()
8 | }
9 |
10 | dependencies {
11 | implementation 'com.google.guava:guava:31.1-jre'
12 | implementation 'com.opencsv:opencsv:5.7.1'
13 | }
14 |
15 | testing {
16 | suites {
17 | test {
18 | useJUnitJupiter('5.9.1')
19 | }
20 | }
21 | }
22 |
23 | application {
24 | mainClass = 'wizozheir.fileio.Main'
25 | }
26 |
--------------------------------------------------------------------------------
/submissions/wizozheir-file-io/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/wizozheir-file-io/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/submissions/wizozheir-file-io/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.2-bin.zip
4 | networkTimeout=10000
5 | zipStoreBase=GRADLE_USER_HOME
6 | zipStorePath=wrapper/dists
7 |
--------------------------------------------------------------------------------
/submissions/wizozheir-file-io/settings.gradle:
--------------------------------------------------------------------------------
1 | /*
2 | * This file was generated by the Gradle 'init' task.
3 | *
4 | * The settings file is used to specify which projects to include in your build.
5 | *
6 | * Detailed information about configuring a multi-project build in Gradle can be found
7 | * in the user manual at https://docs.gradle.org/7.6.2/userguide/multi_project_builds.html
8 | * This project uses @Incubating APIs which are subject to change.
9 | */
10 |
11 | rootProject.name = 'file-io'
12 | include('app')
13 |
--------------------------------------------------------------------------------
/submissions/yashviradia/main.py:
--------------------------------------------------------------------------------
1 | import pandas as pd
2 |
3 | spotify_data = pd.read_csv('spotify-2023.csv')
4 |
5 | # Number of songs in the file
6 | print(f'Total number of songs in this file: {len(spotify_data)}')
7 |
8 | # Number of songs in the key of E
9 | total_e_key_songs = spotify_data[spotify_data['key'] == 'E']
10 | print(f'Total number of songs in the key of E: {len(total_e_key_songs)}')
11 |
12 | # Year with most number of songs
13 | song_count_in_a_year = spotify_data['released_year'].value_counts()
14 | year_with_most_songs = song_count_in_a_year.idxmax()
15 | print(f'{year_with_most_songs} is the year with most number of songs. Total number of songs in this year: {song_count_in_a_year[year_with_most_songs]}')
--------------------------------------------------------------------------------
/submissions/yashviradia/requirements.txt:
--------------------------------------------------------------------------------
1 | pandas
2 |
--------------------------------------------------------------------------------
/submissions/yuuxooon/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
--------------------------------------------------------------------------------
/submissions/yuuxooon/node_modules/.bin/csv-parser:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3 |
4 | case `uname` in
5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
6 | esac
7 |
8 | if [ -x "$basedir/node" ]; then
9 | exec "$basedir/node" "$basedir/../csv-parser/bin/csv-parser" "$@"
10 | else
11 | exec node "$basedir/../csv-parser/bin/csv-parser" "$@"
12 | fi
13 |
--------------------------------------------------------------------------------
/submissions/yuuxooon/node_modules/.bin/csv-parser.cmd:
--------------------------------------------------------------------------------
1 | @ECHO off
2 | GOTO start
3 | :find_dp0
4 | SET dp0=%~dp0
5 | EXIT /b
6 | :start
7 | SETLOCAL
8 | CALL :find_dp0
9 |
10 | IF EXIST "%dp0%\node.exe" (
11 | SET "_prog=%dp0%\node.exe"
12 | ) ELSE (
13 | SET "_prog=node"
14 | SET PATHEXT=%PATHEXT:;.JS;=;%
15 | )
16 |
17 | endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\csv-parser\bin\csv-parser" %*
18 |
--------------------------------------------------------------------------------
/submissions/yuuxooon/node_modules/minimist/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "root": true,
3 |
4 | "extends": "@ljharb/eslint-config/node/0.4",
5 |
6 | "rules": {
7 | "array-element-newline": 0,
8 | "complexity": 0,
9 | "func-style": [2, "declaration"],
10 | "max-lines-per-function": 0,
11 | "max-nested-callbacks": 1,
12 | "max-statements-per-line": 1,
13 | "max-statements": 0,
14 | "multiline-comment-style": 0,
15 | "no-continue": 1,
16 | "no-param-reassign": 1,
17 | "no-restricted-syntax": 1,
18 | "object-curly-newline": 0,
19 | },
20 |
21 | "overrides": [
22 | {
23 | "files": "test/**",
24 | "rules": {
25 | "camelcase": 0,
26 | },
27 | },
28 | ]
29 | }
30 |
--------------------------------------------------------------------------------
/submissions/yuuxooon/node_modules/minimist/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github: [ljharb]
4 | patreon: # Replace with a single Patreon username
5 | open_collective: # Replace with a single Open Collective username
6 | ko_fi: # Replace with a single Ko-fi username
7 | tidelift: npm/minimist
8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9 | liberapay: # Replace with a single Liberapay username
10 | issuehunt: # Replace with a single IssueHunt username
11 | otechie: # Replace with a single Otechie username
12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
13 |
--------------------------------------------------------------------------------
/submissions/yuuxooon/node_modules/minimist/.nycrc:
--------------------------------------------------------------------------------
1 | {
2 | "all": true,
3 | "check-coverage": false,
4 | "reporter": ["text-summary", "text", "html", "json"],
5 | "lines": 86,
6 | "statements": 85.93,
7 | "functions": 82.43,
8 | "branches": 76.06,
9 | "exclude": [
10 | "coverage",
11 | "example",
12 | "test"
13 | ]
14 | }
15 |
--------------------------------------------------------------------------------
/submissions/yuuxooon/node_modules/minimist/example/parse.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var argv = require('../')(process.argv.slice(2));
4 | console.log(argv);
5 |
--------------------------------------------------------------------------------
/submissions/yuuxooon/node_modules/minimist/test/all_bool.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var parse = require('../');
4 | var test = require('tape');
5 |
6 | test('flag boolean true (default all --args to boolean)', function (t) {
7 | var argv = parse(['moo', '--honk', 'cow'], {
8 | boolean: true,
9 | });
10 |
11 | t.deepEqual(argv, {
12 | honk: true,
13 | _: ['moo', 'cow'],
14 | });
15 |
16 | t.deepEqual(typeof argv.honk, 'boolean');
17 | t.end();
18 | });
19 |
20 | test('flag boolean true only affects double hyphen arguments without equals signs', function (t) {
21 | var argv = parse(['moo', '--honk', 'cow', '-p', '55', '--tacos=good'], {
22 | boolean: true,
23 | });
24 |
25 | t.deepEqual(argv, {
26 | honk: true,
27 | tacos: 'good',
28 | p: 55,
29 | _: ['moo', 'cow'],
30 | });
31 |
32 | t.deepEqual(typeof argv.honk, 'boolean');
33 | t.end();
34 | });
35 |
--------------------------------------------------------------------------------
/submissions/yuuxooon/node_modules/minimist/test/dotted.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var parse = require('../');
4 | var test = require('tape');
5 |
6 | test('dotted alias', function (t) {
7 | var argv = parse(['--a.b', '22'], { default: { 'a.b': 11 }, alias: { 'a.b': 'aa.bb' } });
8 | t.equal(argv.a.b, 22);
9 | t.equal(argv.aa.bb, 22);
10 | t.end();
11 | });
12 |
13 | test('dotted default', function (t) {
14 | var argv = parse('', { default: { 'a.b': 11 }, alias: { 'a.b': 'aa.bb' } });
15 | t.equal(argv.a.b, 11);
16 | t.equal(argv.aa.bb, 11);
17 | t.end();
18 | });
19 |
20 | test('dotted default with no alias', function (t) {
21 | var argv = parse('', { default: { 'a.b': 11 } });
22 | t.equal(argv.a.b, 11);
23 | t.end();
24 | });
25 |
--------------------------------------------------------------------------------
/submissions/yuuxooon/node_modules/minimist/test/kv_short.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var parse = require('../');
4 | var test = require('tape');
5 |
6 | test('short -k=v', function (t) {
7 | t.plan(1);
8 |
9 | var argv = parse(['-b=123']);
10 | t.deepEqual(argv, { b: 123, _: [] });
11 | });
12 |
13 | test('multi short -k=v', function (t) {
14 | t.plan(1);
15 |
16 | var argv = parse(['-a=whatever', '-b=robots']);
17 | t.deepEqual(argv, { a: 'whatever', b: 'robots', _: [] });
18 | });
19 |
20 | test('short with embedded equals -k=a=b', function (t) {
21 | t.plan(1);
22 |
23 | var argv = parse(['-k=a=b']);
24 | t.deepEqual(argv, { k: 'a=b', _: [] });
25 | });
26 |
27 | test('short with later equals like -ab=c', function (t) {
28 | t.plan(1);
29 |
30 | var argv = parse(['-ab=c']);
31 | t.deepEqual(argv, { a: true, b: 'c', _: [] });
32 | });
33 |
--------------------------------------------------------------------------------
/submissions/yuuxooon/node_modules/minimist/test/long.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var test = require('tape');
4 | var parse = require('../');
5 |
6 | test('long opts', function (t) {
7 | t.deepEqual(
8 | parse(['--bool']),
9 | { bool: true, _: [] },
10 | 'long boolean'
11 | );
12 | t.deepEqual(
13 | parse(['--pow', 'xixxle']),
14 | { pow: 'xixxle', _: [] },
15 | 'long capture sp'
16 | );
17 | t.deepEqual(
18 | parse(['--pow=xixxle']),
19 | { pow: 'xixxle', _: [] },
20 | 'long capture eq'
21 | );
22 | t.deepEqual(
23 | parse(['--host', 'localhost', '--port', '555']),
24 | { host: 'localhost', port: 555, _: [] },
25 | 'long captures sp'
26 | );
27 | t.deepEqual(
28 | parse(['--host=localhost', '--port=555']),
29 | { host: 'localhost', port: 555, _: [] },
30 | 'long captures eq'
31 | );
32 | t.end();
33 | });
34 |
--------------------------------------------------------------------------------
/submissions/yuuxooon/node_modules/minimist/test/parse_modified.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var parse = require('../');
4 | var test = require('tape');
5 |
6 | test('parse with modifier functions', function (t) {
7 | t.plan(1);
8 |
9 | var argv = parse(['-b', '123'], { boolean: 'b' });
10 | t.deepEqual(argv, { b: true, _: [123] });
11 | });
12 |
--------------------------------------------------------------------------------
/submissions/yuuxooon/node_modules/minimist/test/stop_early.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var parse = require('../');
4 | var test = require('tape');
5 |
6 | test('stops parsing on the first non-option when stopEarly is set', function (t) {
7 | var argv = parse(['--aaa', 'bbb', 'ccc', '--ddd'], {
8 | stopEarly: true,
9 | });
10 |
11 | t.deepEqual(argv, {
12 | aaa: 'bbb',
13 | _: ['ccc', '--ddd'],
14 | });
15 |
16 | t.end();
17 | });
18 |
--------------------------------------------------------------------------------
/submissions/yuuxooon/node_modules/minimist/test/whitespace.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var parse = require('../');
4 | var test = require('tape');
5 |
6 | test('whitespace should be whitespace', function (t) {
7 | t.plan(1);
8 | var x = parse(['-x', '\t']).x;
9 | t.equal(x, '\t');
10 | });
11 |
--------------------------------------------------------------------------------
/submissions/yuuxooon/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "file-io",
3 | "version": "1.0.0",
4 | "description": "Read a spotify csv file and do various tasks.",
5 | "main": "run.js",
6 | "scripts": {
7 | "test": "node run.js"
8 | },
9 | "author": "Jana Pyrek",
10 | "license": "ISC",
11 | "dependencies": {
12 | "csv-parser": "^3.0.0"
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/submissions/zli213/spotify-2023.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zero-to-mastery/file-io/fd01e4df0e9799fb2b7706ba361bcbdbec8b0194/submissions/zli213/spotify-2023.csv
--------------------------------------------------------------------------------