├── .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 | ![image](https://github.com/maxie7/file-io/assets/15796607/da27f80b-fa38-4fa1-aca6-30d08053c9a3) 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 | ![image](https://github.com/maxie7/file-io/assets/15796607/b366f976-c223-4141-9ae1-aa5380aaae16) 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 | ![ts_solution_hacktoberfest_2023](https://github.com/maxie7/file-io/assets/15796607/5d22fc84-ad3d-47f1-9528-eade4cb4d62a) 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 --------------------------------------------------------------------------------