WSON is a simple, readable data interchange format that combines the best features of JSON and YAML while addressing some of their limitations.
Feature | Status | Description |
---|---|---|
Syntax | Implemented | The basic syntax of WSON is implemented. |
Comment Support (// and # styles) | Implemented | The ability to remove comments is implemented. |
Original Formatting Preservation | Not Implemented | The functionality to preserve original formatting is not explicitly implemented. |
Nested Objects and Arrays Support | Implemented | Capable of parsing and serializing nested objects and arrays. |
String, Number, Boolean, and Null Handling | Implemented | Can handle various data types. |
Date and Time Handling | Implemented | Supports parsing and serializing date and time values. |
Version Handling | Implemented | Supports parsing and serializing version numbers as tuples. |
You can install WSON using pip:
pip install wson
Here's a quick example of how to use WSON in your Python projects:
import wson
# WSON String
wson_data = """
{
status = "success",
code = 200,
message = "Data retrieved successfully",
user = {
id = 123,
name = "John Doe",
email = "john@example.com",
age = 25
},
tasks = [
{
task_id = 1,
title = "Complete project report",
status = "in-progress",
due_date = "2024-10-15"
},
{
task_id = 2,
title = "Review team feedback",
status = "pending",
due_date = "2024-10-20"
}
]
}
"""
# Parsing the WSON string into the Python dictionary
parsed_data = wson.loads(wson_data)
print("Parsed Data:")
print(parsed_data)
# Serialize Python dictionaries into WSON strings
wson_output = wson.dumps(parsed_data)
print("\nSerialized WSON:")
print(wson_output)
WSON addresses some limitations of JSON and YAML:
- Unlike JSON, WSON supports comments, making it more readable and self-documenting.
- WSON has a simpler syntax compared to YAML, reducing the chance of indentation errors.
- WSON preserves the original formatting when possible, unlike JSON which often alters the structure.
- WSON is more concise than JSON, omitting unnecessary quotation marks for keys.
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License.