Skip to content

dataframe and data connectivity#11

Merged
ravituringworks merged 4 commits into
masterfrom
develop
Nov 13, 2025
Merged

dataframe and data connectivity#11
ravituringworks merged 4 commits into
masterfrom
develop

Conversation

@ravituringworks

Copy link
Copy Markdown
Collaborator

dataframe and data connectivity

ravituringworks and others added 4 commits November 12, 2025 00:53
Adds support for user-defined procedures with PRO/ENDPRO syntax, addressing
the most critical missing feature in XDL.

Changes:
- Parser: Implement parameter and keyword parsing for procedure definitions
- Parser: Add trailing comma handling for procedure calls
- Parser: Add newline skipping at statement boundaries
- Interpreter: Implement call_user_procedure() method with scope management
- Interpreter: Add parameter binding and keyword argument handling
- Add comprehensive test suite for procedure functionality

Features:
- Define procedures with parameters: PRO name, param1, param2
- Call procedures with arguments
- Nested procedure calls
- Local scope management
- Parameter binding

Known limitation: Procedures without parameters need at least one dummy parameter
as a workaround for a parser edge case with trailing commas.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Add support for GOTO statements and labels in the XDL parser, enabling control flow jumps to labeled positions in the code.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Implements comprehensive SQLite integration for the XDL database connectivity module, enabling embedded database capabilities with both file-based and in-memory database support.

Changes:
- Add SQLite driver implementation with full CRUD operations
- Support multiple connection string formats (sqlite://, file paths, :memory:)
- Implement query execution with Recordset conversion
- Add proper error handling and type conversion from SQLite to JSON
- Include base64 encoding for blob data handling
- Register SQLite in connection enum and module system
- Add rusqlite dependency with bundled feature
- Create comprehensive example demonstrating all SQLite features

Features:
- File-based and in-memory database support
- Thread-safe connection handling with Mutex
- Transaction support (BEGIN, COMMIT, ROLLBACK)
- Index creation and management
- Full SQL DDL/DML support (CREATE, INSERT, UPDATE, DELETE, SELECT)
- Column metadata extraction

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Implements comprehensive DataFrame functionality for XDL with support for multiple data formats and seamless integration with ML, charting, and 3D visualization capabilities.

Core Features:
- DataFrame and Series data structures with labeled columns
- Pandas/Spark-style operations (filter, select, groupby, sort, join)
- Statistical operations (describe, sum, mean, count, value_counts)
- Data manipulation (head, tail, column operations)

Data Format Support:
- CSV/TSV: Full read/write with type inference
- Parquet: Columnar storage format for big data (requires feature flag)
- Avro: Binary serialization format (requires feature flag)
- Database: Seamless Recordset conversion from xdl-database

File Structure:
- src/dataframe.rs: Core DataFrame and GroupBy implementation
- src/series.rs: Single column data structure
- src/error.rs: Error handling types
- src/readers/csv.rs: CSV/TSV reader with options
- src/readers/parquet.rs: Parquet format support
- src/readers/avro.rs: Avro format support
- src/database.rs: Database Recordset integration

Operations Implemented:
- Selection: select(), column(), filter()
- Aggregation: groupby().count(), groupby().mean(), groupby().sum()
- Sorting: sort_by()
- Inspection: head(), tail(), shape(), info(), describe()
- Statistics: Series.mean(), Series.sum(), Series.unique(), Series.value_counts()
- Export: to_json(), to_xdl_value(), write_csv(), write_tsv()

Integration Points:
- xdl-core: XdlValue and GdlArray compatibility
- xdl-database: Recordset conversion for SQL queries
- xdl-stdlib: ML functions, charting, and 3D visualization
- Converts seamlessly between DataFrames and XDL arrays

Examples Provided:
1. csv_analysis.xdl: Complete CSV workflow with filtering, grouping, plotting
2. parquet_example.xdl: Big data handling with Parquet format
3. database_integration.xdl: SQL database to DataFrame workflow with joins
4. ml_and_viz_integration.xdl: Full ML pipeline with classification and 3D viz

Features:
- default: CSV support + database integration
- parquet-support: Enable Parquet format
- avro-support: Enable Avro format
- all: Enable all format support

Dependencies:
- csv 1.3 for CSV/TSV parsing
- parquet 53 + arrow 53 for Parquet (optional)
- apache-avro 0.17 for Avro (optional)
- indexmap 2.0 for ordered column storage
- Integration with xdl-database (optional)

Testing:
- 11 unit tests covering DataFrame, Series, and CSV operations
- Type inference tests
- All tests passing

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@ravituringworks ravituringworks merged commit a122aeb into master Nov 13, 2025
0 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant