docs: add license rationale, Python/PineScript guides, API updates

- Add docs/license.md with Apache 2.0 rationale and patent protection analysis
- Add docs/python.md and docs/pinescript.md platform guides
- Expand README license section with disclosure and link to rationale
- Update docs/api.md and docs/architecture.md
- Update Python bindings: helpers, all indicator modules, pyproject.toml
- Add Python tests for Arrow and Polars integration
- Update TValue core type and documentation
- Add fix_length_to_period tooling script
This commit is contained in:
Miha Kralj
2026-03-03 22:11:35 -08:00
parent 6f4e083811
commit f10baa6dfb
28 changed files with 2050 additions and 542 deletions
+7
View File
@@ -26,6 +26,13 @@ public readonly record struct TValue(long Time, double Value) : ISpanFormattable
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static implicit operator DateTime(TValue tv) => new(tv.Time, DateTimeKind.Utc);
/// <summary>
/// Implicitly converts a raw double to a TValue with DateTime.UtcNow timestamp.
/// Enables ergonomic APIs like <c>sma.Update(110.4)</c>.
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static implicit operator TValue(double value) => new(DateTime.UtcNow, value);
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public override string ToString()
{